HCoop
/
bpt
/
emacs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-13
[bpt/emacs.git]
/
src
/
lisp.h
diff --git
a/src/lisp.h
b/src/lisp.h
index
2e82a33
..
60bf01a
100644
(file)
--- a/
src/lisp.h
+++ b/
src/lisp.h
@@
-1,6
+1,6
@@
/* Fundamental definitions for GNU Emacs Lisp interpreter.
/* Fundamental definitions for GNU Emacs Lisp interpreter.
- Copyright (C) 1985,
86,87,93,94,95,97,98,1999,2000,01,02,03,2004
- Free Software Foundation, Inc.
+ Copyright (C) 1985,
1986, 1987, 1993, 1994, 1995, 1997, 1998, 1999, 2000,
+
2001, 2002, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GNU Emacs.
This file is part of GNU Emacs.
@@
-16,8
+16,8
@@
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 5
9 Temple Place - Suite 330
,
-Boston, MA 0211
1-1307
, USA. */
+the Free Software Foundation, Inc., 5
1 Franklin Street, Fifth Floor
,
+Boston, MA 0211
0-1301
, USA. */
#ifndef EMACS_LISP_H
#define EMACS_LISP_H
#ifndef EMACS_LISP_H
#define EMACS_LISP_H
@@
-53,6
+53,11
@@
Boston, MA 02111-1307, USA. */
#endif /* 0 */
#endif /* 0 */
+#ifdef GC_CHECK_CONS_LIST
+#define CHECK_CONS_LIST() check_cons_list()
+#else
+#define CHECK_CONS_LIST() 0
+#endif
/* These are default choices for the types to use. */
#ifdef _LP64
/* These are default choices for the types to use. */
#ifdef _LP64
@@
-248,7
+253,7
@@
LISP_MAKE_RVALUE (Lisp_Object o)
/* If union type is not wanted, define Lisp_Object as just a number. */
#ifdef NO_UNION_TYPE
/* If union type is not wanted, define Lisp_Object as just a number. */
#ifdef NO_UNION_TYPE
-#define Lisp_Object EMACS_INT
+typedef EMACS_INT Lisp_Object;
#define LISP_MAKE_RVALUE(o) (0+(o))
#endif /* NO_UNION_TYPE */
#define LISP_MAKE_RVALUE(o) (0+(o))
#endif /* NO_UNION_TYPE */
@@
-447,10
+452,10
@@
enum pvec_type
#define make_number(N) \
(__extension__ ({ Lisp_Object _l; _l.s.val = (N); _l.s.type = Lisp_Int; _l; }))
#else
#define make_number(N) \
(__extension__ ({ Lisp_Object _l; _l.s.val = (N); _l.s.type = Lisp_Int; _l; }))
#else
-extern Lisp_Object make_number
(
);
+extern Lisp_Object make_number
P_ ((EMACS_INT)
);
#endif
#endif
-#define EQ(x, y) ((x).
s.val == (y).s.val && (x).s.type == (y).s.type
)
+#define EQ(x, y) ((x).
i == (y).i
)
#endif /* NO_UNION_TYPE */
#endif /* NO_UNION_TYPE */
@@
-480,7
+485,11
@@
extern size_t pure_size;
in a Lisp object whose data type says it points to something. */
#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
#else
in a Lisp object whose data type says it points to something. */
#define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
#else
-#define XPNTR(a) XUINT (a)
+/* Some versions of gcc seem to consider the bitfield width when
+ issuing the "cast to pointer from integer of different size"
+ warning, so the cast is here to widen the value back to its natural
+ size. */
+#define XPNTR(a) ((EMACS_INT) XUINT (a))
#endif
#endif /* not HAVE_SHM */
#endif /* no XPNTR */
#endif
#endif /* not HAVE_SHM */
#endif /* no XPNTR */
@@
-598,9
+607,19
@@
struct Lisp_Cons
/* Please do not use the names of these elements in code other
than the core lisp implementation. Use XCAR and XCDR below. */
#ifdef HIDE_LISP_IMPLEMENTATION
/* Please do not use the names of these elements in code other
than the core lisp implementation. Use XCAR and XCDR below. */
#ifdef HIDE_LISP_IMPLEMENTATION
- Lisp_Object car_, cdr_;
+ Lisp_Object car_;
+ union
+ {
+ Lisp_Object cdr_;
+ struct Lisp_Cons *chain;
+ } u;
#else
#else
- Lisp_Object car, cdr;
+ Lisp_Object car;
+ union
+ {
+ Lisp_Object cdr;
+ struct Lisp_Cons *chain;
+ } u;
#endif
};
#endif
};
@@
-613,10
+632,10
@@
struct Lisp_Cons
invalidated at arbitrary points.) */
#ifdef HIDE_LISP_IMPLEMENTATION
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car_)
invalidated at arbitrary points.) */
#ifdef HIDE_LISP_IMPLEMENTATION
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car_)
-#define XCDR_AS_LVALUE(c) (XCONS ((c))->cdr_)
+#define XCDR_AS_LVALUE(c) (XCONS ((c))->
u.
cdr_)
#else
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car)
#else
#define XCAR_AS_LVALUE(c) (XCONS ((c))->car)
-#define XCDR_AS_LVALUE(c) (XCONS ((c))->cdr)
+#define XCDR_AS_LVALUE(c) (XCONS ((c))->
u.
cdr)
#endif
/* Use these from normal code. */
#endif
/* Use these from normal code. */
@@
-1266,17
+1285,21
@@
union Lisp_Misc
/* Lisp floating point type */
struct Lisp_Float
{
/* Lisp floating point type */
struct Lisp_Float
{
+ union
+ {
#ifdef HIDE_LISP_IMPLEMENTATION
#ifdef HIDE_LISP_IMPLEMENTATION
- double data_;
+
double data_;
#else
#else
- double data;
+
double data;
#endif
#endif
+ struct Lisp_Float *chain;
+ } u;
};
#ifdef HIDE_LISP_IMPLEMENTATION
};
#ifdef HIDE_LISP_IMPLEMENTATION
-#define XFLOAT_DATA(f) (XFLOAT (f)->data_)
+#define XFLOAT_DATA(f) (XFLOAT (f)->
u.
data_)
#else
#else
-#define XFLOAT_DATA(f) (XFLOAT (f)->data)
+#define XFLOAT_DATA(f) (XFLOAT (f)->
u.
data)
#endif
/* A character, declared with the following typedef, is a member
#endif
/* A character, declared with the following typedef, is a member
@@
-1802,7
+1825,7
@@
extern int interrupt_input_pending;
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
- Fthrow (Vthrow_on_input, Q
nil);
\
+ Fthrow (Vthrow_on_input, Q
t);
\
Fsignal (Qquit, Qnil); \
} \
else if (interrupt_input_pending) \
Fsignal (Qquit, Qnil); \
} \
else if (interrupt_input_pending) \
@@
-1818,7
+1841,7
@@
extern int interrupt_input_pending;
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
Lisp_Object flag = Vquit_flag; \
Vquit_flag = Qnil; \
if (EQ (Vthrow_on_input, flag)) \
- Fthrow (Vthrow_on_input, Q
nil);
\
+ Fthrow (Vthrow_on_input, Q
t);
\
Fsignal (Qquit, Qnil); \
} \
} while (0)
Fsignal (Qquit, Qnil); \
} \
} while (0)
@@
-1874,16
+1897,21
@@
extern Lisp_Object case_temp2;
NATNUMP (case_temp2)) \
? XFASTINT (case_temp2) : case_temp1)
NATNUMP (case_temp2)) \
? XFASTINT (case_temp2) : case_temp1)
-extern Lisp_Object Vascii_downcase_table;
+extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
+extern Lisp_Object Vascii_canon_table, Vascii_eqv_table;
\f
/* Number of bytes of structure consed since last GC. */
extern int consing_since_gc;
\f
/* Number of bytes of structure consed since last GC. */
extern int consing_since_gc;
-/* Threshold for doing another gc. */
+/* Threshold
s
for doing another gc. */
extern EMACS_INT gc_cons_threshold;
extern EMACS_INT gc_cons_threshold;
+extern EMACS_INT gc_relative_threshold;
+
+extern EMACS_INT memory_full_cons_threshold;
+
/* Structure for recording stack slots that need marking. */
/* This is a chain of structures, each of which points at a Lisp_Object variable
/* Structure for recording stack slots that need marking. */
/* This is a chain of structures, each of which points at a Lisp_Object variable
@@
-2228,6
+2256,9
@@
extern void keys_of_cmds P_ ((void));
/* Defined in coding.c */
EXFUN (Fcoding_system_p, 1);
/* Defined in coding.c */
EXFUN (Fcoding_system_p, 1);
+EXFUN (Fcoding_system_base, 1);
+EXFUN (Fcoding_system_eol_type, 1);
+EXFUN (Fcheck_coding_system, 1);
EXFUN (Fcheck_coding_system, 1);
EXFUN (Fread_coding_system, 2);
EXFUN (Fread_non_nil_coding_system, 1);
EXFUN (Fcheck_coding_system, 1);
EXFUN (Fread_coding_system, 2);
EXFUN (Fread_non_nil_coding_system, 1);
@@
-2362,7
+2393,6
@@
extern Lisp_Object string_to_multibyte P_ ((Lisp_Object));
extern Lisp_Object string_make_unibyte P_ ((Lisp_Object));
EXFUN (Fcopy_alist, 1);
EXFUN (Fplist_get, 2);
extern Lisp_Object string_make_unibyte P_ ((Lisp_Object));
EXFUN (Fcopy_alist, 1);
EXFUN (Fplist_get, 2);
-EXFUN (Fsafe_plist_get, 2);
EXFUN (Fplist_put, 3);
EXFUN (Fplist_member, 2);
EXFUN (Frassoc, 2);
EXFUN (Fplist_put, 3);
EXFUN (Fplist_member, 2);
EXFUN (Frassoc, 2);
@@
-2547,6
+2577,7
@@
extern void init_alloc_once P_ ((void));
extern void init_alloc P_ ((void));
extern void syms_of_alloc P_ ((void));
extern struct buffer * allocate_buffer P_ ((void));
extern void init_alloc P_ ((void));
extern void syms_of_alloc P_ ((void));
extern struct buffer * allocate_buffer P_ ((void));
+extern int valid_lisp_object_p P_ ((Lisp_Object));
/* Defined in chartab.c */
EXFUN (Fmake_char_table, 2);
/* Defined in chartab.c */
EXFUN (Fmake_char_table, 2);
@@
-2689,6
+2720,7
@@
extern Lisp_Object call6 P_ ((Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object
EXFUN (Fdo_auto_save, 2);
extern Lisp_Object apply_lambda P_ ((Lisp_Object, Lisp_Object, int));
extern Lisp_Object internal_catch P_ ((Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object));
EXFUN (Fdo_auto_save, 2);
extern Lisp_Object apply_lambda P_ ((Lisp_Object, Lisp_Object, int));
extern Lisp_Object internal_catch P_ ((Lisp_Object, Lisp_Object (*) (Lisp_Object), Lisp_Object));
+extern Lisp_Object internal_lisp_condition_case P_ ((Lisp_Object, Lisp_Object, Lisp_Object));
extern Lisp_Object internal_condition_case P_ ((Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object)));
extern Lisp_Object internal_condition_case_1 P_ ((Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
extern Lisp_Object internal_condition_case_2 P_ ((Lisp_Object (*) (int, Lisp_Object *), int, Lisp_Object *, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
extern Lisp_Object internal_condition_case P_ ((Lisp_Object (*) (void), Lisp_Object, Lisp_Object (*) (Lisp_Object)));
extern Lisp_Object internal_condition_case_1 P_ ((Lisp_Object (*) (Lisp_Object), Lisp_Object, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
extern Lisp_Object internal_condition_case_2 P_ ((Lisp_Object (*) (int, Lisp_Object *), int, Lisp_Object *, Lisp_Object, Lisp_Object (*) (Lisp_Object)));
@@
-2796,6
+2828,7
@@
EXFUN (Fbuffer_disable_undo, 1);
EXFUN (Fbuffer_enable_undo, 1);
EXFUN (Ferase_buffer, 0);
extern Lisp_Object Qoverlayp;
EXFUN (Fbuffer_enable_undo, 1);
EXFUN (Ferase_buffer, 0);
extern Lisp_Object Qoverlayp;
+extern Lisp_Object Qevaporate;
extern Lisp_Object get_truename_buffer P_ ((Lisp_Object));
extern struct buffer *all_buffers;
EXFUN (Fprevious_overlay_change, 1);
extern Lisp_Object get_truename_buffer P_ ((Lisp_Object));
extern struct buffer *all_buffers;
EXFUN (Fprevious_overlay_change, 1);
@@
-2863,11
+2896,12
@@
extern void syms_of_abbrev P_ ((void));
/* defined in search.c */
extern void shrink_regexp_cache P_ ((void));
EXFUN (Fstring_match, 3);
/* defined in search.c */
extern void shrink_regexp_cache P_ ((void));
EXFUN (Fstring_match, 3);
-extern void restore_
match_data
P_ ((void));
-EXFUN (Fmatch_data,
2
);
-EXFUN (Fset_match_data,
1
);
+extern void restore_
search_regs
P_ ((void));
+EXFUN (Fmatch_data,
3
);
+EXFUN (Fset_match_data,
2
);
EXFUN (Fmatch_beginning, 1);
EXFUN (Fmatch_end, 1);
EXFUN (Fmatch_beginning, 1);
EXFUN (Fmatch_end, 1);
+extern void record_unwind_save_match_data P_ ((void));
EXFUN (Flooking_at, 1);
extern int fast_string_match P_ ((Lisp_Object, Lisp_Object));
extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *));
EXFUN (Flooking_at, 1);
extern int fast_string_match P_ ((Lisp_Object, Lisp_Object));
extern int fast_c_string_match_ignore_case P_ ((Lisp_Object, const char *));
@@
-2982,7
+3016,7
@@
extern Lisp_Object do_switch_frame P_ ((Lisp_Object, int, int));
extern Lisp_Object get_frame_param P_ ((struct frame *, Lisp_Object));
extern Lisp_Object frame_buffer_predicate P_ ((Lisp_Object));
EXFUN (Fframep, 1);
extern Lisp_Object get_frame_param P_ ((struct frame *, Lisp_Object));
extern Lisp_Object frame_buffer_predicate P_ ((Lisp_Object));
EXFUN (Fframep, 1);
-EXFUN (Fselect_frame,
2
);
+EXFUN (Fselect_frame,
1
);
EXFUN (Fselected_frame, 0);
EXFUN (Fwindow_frame, 1);
EXFUN (Fframe_root_window, 1);
EXFUN (Fselected_frame, 0);
EXFUN (Fwindow_frame, 1);
EXFUN (Fframe_root_window, 1);
@@
-3050,12
+3084,9
@@
extern int wait_reading_process_output P_ ((int, int, int, int,
Lisp_Object,
struct Lisp_Process *,
int));
Lisp_Object,
struct Lisp_Process *,
int));
-extern void deactivate_process P_ ((Lisp_Object));
extern void add_keyboard_wait_descriptor P_ ((int));
extern void delete_keyboard_wait_descriptor P_ ((int));
extern void close_process_descs P_ ((void));
extern void add_keyboard_wait_descriptor P_ ((int));
extern void delete_keyboard_wait_descriptor P_ ((int));
extern void close_process_descs P_ ((void));
-extern void status_notify P_ ((void));
-extern int read_process_output P_ ((Lisp_Object, int));
extern void init_process P_ ((void));
extern void syms_of_process P_ ((void));
extern void setup_process_coding_systems P_ ((Lisp_Object));
extern void init_process P_ ((void));
extern void syms_of_process P_ ((void));
extern void setup_process_coding_systems P_ ((Lisp_Object));
@@
-3128,10
+3159,13
@@
extern Lisp_Object next_single_char_property_change P_ ((Lisp_Object,
/* defined in xmenu.c */
EXFUN (Fx_popup_menu, 2);
/* defined in xmenu.c */
EXFUN (Fx_popup_menu, 2);
-EXFUN (Fx_popup_dialog,
2
);
+EXFUN (Fx_popup_dialog,
3
);
extern void syms_of_xmenu P_ ((void));
/* defined in sysdep.c */
extern void syms_of_xmenu P_ ((void));
/* defined in sysdep.c */
+#ifndef HAVE_GET_CURRENT_DIR_NAME
+extern char *get_current_dir_name P_ ((void));
+#endif
extern void stuff_char P_ ((char c));
extern void init_sigio P_ ((int));
extern void request_sigio P_ ((void));
extern void stuff_char P_ ((char c));
extern void init_sigio P_ ((int));
extern void request_sigio P_ ((void));