X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9418ab39bf970dd82b5d6f2e7b40a5d8cd134a43..00b6647651e4276ac5c47aa33e0fec6726469bc7:/src/lisp.h diff --git a/src/lisp.h b/src/lisp.h index de74a47e3d..48c2728164 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -88,7 +88,11 @@ typedef unsigned long EMACS_UINT; typedef long long int EMACS_INT; typedef unsigned long long int EMACS_UINT; # define EMACS_INT_MAX LLONG_MAX -# define pI "ll" +# ifdef __MINGW32__ +# define pI "I64" +# else +# define pI "ll" +# endif # else # error "INTPTR_MAX too large" # endif @@ -341,7 +345,9 @@ error !; (struct Lisp_Symbol *) ((intptr_t) XLI (a) - Lisp_Symbol \ + (char *) lispsym)) # define lisp_h_XTYPE(a) ((enum Lisp_Type) (XLI (a) & ~VALMASK)) -# define lisp_h_XUNTAG(a, type) ((void *) (intptr_t) (XLI (a) - (type))) +# define lisp_h_XUNTAG(a, type) \ + __builtin_assume_aligned ((void *) (intptr_t) (XLI (a) - (type)), \ + GCALIGNMENT) #endif /* When compiling via gcc -O0, define the key operations as macros, as @@ -1746,7 +1752,7 @@ struct Lisp_Subr short min_args, max_args; const char *symbol_name; const char *intspec; - const char *doc; + EMACS_INT doc; }; enum char_table_specials @@ -3522,6 +3528,8 @@ extern void adjust_after_insert (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t); extern void adjust_markers_for_delete (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t); +extern void adjust_markers_bytepos (ptrdiff_t, ptrdiff_t, + ptrdiff_t, ptrdiff_t, int); extern void replace_range (ptrdiff_t, ptrdiff_t, Lisp_Object, bool, bool, bool); extern void replace_range_2 (ptrdiff_t, ptrdiff_t, ptrdiff_t, ptrdiff_t, const char *, ptrdiff_t, ptrdiff_t, bool); @@ -4129,6 +4137,7 @@ INLINE void fixup_locale (void) {} INLINE void synchronize_system_messages_locale (void) {} INLINE void synchronize_system_time_locale (void) {} #endif +extern char *emacs_strerror (int); extern void shut_down_emacs (int, Lisp_Object); /* True means don't do interactive redisplay and don't change tty modes. */ @@ -4165,8 +4174,8 @@ extern void kill_buffer_processes (Lisp_Object); extern int wait_reading_process_output (intmax_t, int, int, bool, Lisp_Object, struct Lisp_Process *, int); /* Max value for the first argument of wait_reading_process_output. */ -#if __GNUC__ == 3 || (__GNUC__ == 4 && __GNUC_MINOR__ <= 5) -/* Work around a bug in GCC 3.4.2, known to be fixed in GCC 4.6.3. +#if GNUC_PREREQ (3, 0, 0) && ! GNUC_PREREQ (4, 6, 0) +/* Work around a bug in GCC 3.4.2, known to be fixed in GCC 4.6.0. The bug merely causes a bogus warning, but the warning is annoying. */ # define WAIT_READING_MAX min (TYPE_MAXIMUM (time_t), INTMAX_MAX) #else @@ -4198,9 +4207,6 @@ extern void syms_of_callproc (void); /* Defined in doc.c. */ enum text_quoting_style { - /* Leave quotes unchanged. */ - LEAVE_QUOTING_STYLE, - /* Use curved single quotes ‘like this’. */ CURVE_QUOTING_STYLE, @@ -4542,8 +4548,7 @@ extern void *record_xmalloc (size_t) ATTRIBUTE_ALLOC_SIZE ((1)); Build with CPPFLAGS='-DUSE_STACK_LISP_OBJECTS=0' to disable it. */ #if (!defined USE_STACK_LISP_OBJECTS \ - && defined __GNUC__ && !defined __clang__ \ - && !(4 < __GNUC__ + (3 < __GNUC_MINOR__ + (2 <= __GNUC_PATCHLEVEL__)))) + && defined __GNUC__ && !defined __clang__ && ! GNUC_PREREQ (4, 3, 2)) /* Work around GCC bugs 36584 and 35271, which were fixed in GCC 4.3.2. */ # define USE_STACK_LISP_OBJECTS false #endif