view src/emodules.h @ 930:eaedf30d9d76

[xemacs-hg @ 2002-07-23 08:34:59 by youngs] 2002-07-15 Jerry James <james@xemacs.org> * make-docfile.c: Change whitespace and organization to reduce the size of the diff against FSF Emacs sources and synch to Emacs 21.2. Remove unused DO_REALLOC. Mark XEmacs changes and additions more clearly. Reintroduce previously deleted Emacs code inside #if 0 ... #endif. * make-docfile.c (next_extra_elc): Replace goto with do-while. * make-docfile.c (main): Put XEmacs-only args in one place. * make-docfile.c (write_c_args): Change buff to buf to match Emacs. Replace pointer arithmetic with simpler array syntax. * make-docfile.c (scan_c_file): Note that DEFSIMPLE and DEFPRED no longer exist. Correct the "name too long" test (off by one). Die with message if a DEFUN has no docstring instead of hanging. * make-docfile.c (scan_lisp_file): Introduce while loops used in Emacs sources to skip consecutive blank lines. 2002-07-21 John Paul Wallington <jpw@xemacs.org> * process.el (substitute-env-vars): New function; sync with GNU Emacs 21.1.50. (setenv): Add optional arg SUBSTITUTE-ENV-VARS; sync with GNU Emacs 21.1.50. 2002-07-20 Mike Sperber <mike@xemacs.org> * eval.c (run_post_gc_hook): Use more correct flags when running post-gc-hook. 2002-07-20 Mike Sperber <mike@xemacs.org> * process-unix.c (child_setup): Don't try to close file descriptors for chid process once again---it's already being done in close_process_descs. (unix_create_process): Call begin_dont_check_for_quit to inhibit unwanted interaction (and thus breaking of X event synchronicity) in the child. 2002-07-15 Jerry James <james@xemacs.org> * lisp.h: Make Qdll_error visible globally. * symbols.c (check_sane_subr): Revert 2002-06-26 change. Check only if !initialized. * symbols.c (check_module_subr): Add parameter. Duplicate check_sane_subr checks, but signal an error instead of asserting. * symbols.c (defsubr): Use check_module_subr parameter. * symbols.c (defsubr_macro): Ditto.
author youngs
date Tue, 23 Jul 2002 08:35:11 +0000
parents 943eaba38521
children 25e260cb7994
line wrap: on
line source

/* emodules.h - Declarations and definitions for XEmacs loadable modules.
(C) Copyright 1998, 1999 J. Kean Johnston. All rights reserved.

This file is part of XEmacs.

XEmacs is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.

XEmacs is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with XEmacs; see the file COPYING.  If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.  */

#ifndef EMODULES_HDR

#ifndef EMODULES_GATHER_VERSION
#define EMODULES_HDR
#endif

#define EMODULES_VERSION    "1.0.0"
#define EMODULES_MAJOR      1
#define EMODULES_MINOR      0
#define EMODULES_PATCH      0
#define EMODULES_REVISION   (long)((EMODULES_MAJOR * 1000) + \
                             (EMODULES_MINOR * 10) + \
                             (EMODULES_PATCH))

#ifndef EMODULES_GATHER_VERSION
#include <config.h>
#include "lisp.h"
#include "sysdep.h"
#include "window.h"
#include "buffer.h"
#include "insdel.h"
#include "frame.h"
#include "lstream.h"
#include "file-coding.h"

/* Module loading technology version number */
extern Lisp_Object Vmodule_version;

/* Load path */
extern Lisp_Object Vmodule_load_path;

/* XEmacs version Information */
extern Lisp_Object Vemacs_major_version;
extern Lisp_Object Vemacs_minor_version;

/*
 * Load in a C module. The first argument is the name of the .so file, the
 * second is the name of the module, and the third is the module version.
 * If the module name is NULL, we will always reload the .so. If it is not
 * NULL, we check to make sure we haven't loaded it before. If the version
 * is specified, we check to make sure we didn't load the module of the
 * specified version before. We also use these as checks when we open the
 * module to make sure we have the right module.
 */
extern void emodules_load (const char *module, const char *name, const char *version);

/*
 * Because subrs and symbols added by a dynamic module are not part of
 * the make-docfile process, we need a clean way to get the variables
 * and functions documented. Since people don't like the idea of making
 * shared modules use different versions of DEFSUBR() and DEFVAR_LISP()
 * and friends, we need these two functions to insert the documentation
 * into the right place. These functions will be called by the module
 * init code, generated by ellcc during initialization mode.
 */
extern void emodules_doc_subr (const char *objname, const char *docstr);
extern void emodules_doc_sym (const char *objname, const char *docstr);

#define CDOCSUBR(Fname, DOC) emodules_doc_subr (Fname, DOC)
#define CDOCSYM(Sname, DOC)  emodules_doc_sym  (Sname, DOC)
#endif /* EMODULES_GATHER_VERSION */

#endif /* EMODULES_HDR */