aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2019-04-25 13:21:39 -0700
committerPaul Eggert2019-04-25 13:23:07 -0700
commit69947311d84a2572e8382e401ab97fdab25cb433 (patch)
tree7c14a5e0a0566c9a053a1e99d37a6a076d9996b7 /src
parentca99c00f7574d72cd6d07dbfe0c3011f033ba5e8 (diff)
downloademacs-69947311d84a2572e8382e401ab97fdab25cb433.tar.gz
emacs-69947311d84a2572e8382e401ab97fdab25cb433.zip
Port to Oracle Developer Studio 12.6
This compiler is a bit pickier about checking conformance to the C standard, ranging from syntax trivia (no extra ";" at the top level) to portability trivia (warnings re conversion between function and data pointers) to more-important stuff like lack of support for some __attribute__ usages. * src/dynlib.c (dynlib_addr): First argument is a function pointer, not a data pointer. All callers changed. * src/emacs-module.c (module_function_address): Return module_funcptr, not void *. All uses changed. * src/lisp.h (module_funcptr) [HAVE_MODULES]: New type. * src/lread.c (union ieee754_double): Don’t assume the usual semantics for converting signed to unsigned int when initializing a bitfield, as the Oracle compiler complains and the C standard is unclear. * src/pdumper.c (ALLOW_IMPLICIT_CONVERSION): Make it clearer that -Wsign-conversion is disabled everywhere in this file. (dump_trace, dump_tailq_prepend, dump_tailq_append): Don’t assume __attribute__. (dump_object_self_representing_p): Don’t disable conversion warnings; it’s not needed here. (DEFINE_FROMLISP_FUNC): Avoid possible signal in integer conversion from unsigned to signed. (DEFINE_FROMLISP_FUNC, finish_dump_pvec): Avoid warning about unreachable statements on platforms not supporting the __attribute__. (intmax_t_from_lisp, intmax_t_to_lisp, dump_off_from_lisp) (dump_off_to_lisp, dump_emacs_reloc_immediate_lv) (dump_emacs_reloc_immediate_ptrdiff_t) (dump_emacs_reloc_immediate_intmax_t) (dump_emacs_reloc_immediate_int, dump_emacs_reloc_immediate_bool): Omit stray semicolon that violates C standard. (dump_metadata_for_pdumper): Add cast to pacify compiler complaining about conversion from function pointer to data pointer. (Fdump_emacs_portable): Do not use CALLN to call a function with zero arguments, as C99 prohibits empty initializers. * src/xdisp.c (syms_of_xdisp): Do not nest calls to pure_list, to work around a bug in Oracle Developer Studio 12.6.
Diffstat (limited to 'src')
-rw-r--r--src/dynlib.c5
-rw-r--r--src/dynlib.h2
-rw-r--r--src/emacs-module.c4
-rw-r--r--src/lisp.h15
-rw-r--r--src/lread.c2
-rw-r--r--src/pdumper.c67
-rw-r--r--src/print.c2
-rw-r--r--src/xdisp.c12
8 files changed, 61 insertions, 48 deletions
diff --git a/src/dynlib.c b/src/dynlib.c
index 878044558a6..9c1bf4a82af 100644
--- a/src/dynlib.c
+++ b/src/dynlib.c
@@ -123,7 +123,7 @@ dynlib_sym (dynlib_handle_ptr h, const char *sym)
123} 123}
124 124
125void 125void
126dynlib_addr (void *addr, const char **fname, const char **symname) 126dynlib_addr (void (*addr) (void), const char **fname, const char **symname)
127{ 127{
128 static char dll_filename[MAX_UTF8_PATH]; 128 static char dll_filename[MAX_UTF8_PATH];
129 static GetModuleHandleExA_Proc s_pfn_Get_Module_HandleExA = NULL; 129 static GetModuleHandleExA_Proc s_pfn_Get_Module_HandleExA = NULL;
@@ -279,11 +279,12 @@ dynlib_sym (dynlib_handle_ptr h, const char *sym)
279} 279}
280 280
281void 281void
282dynlib_addr (void *ptr, const char **path, const char **sym) 282dynlib_addr (void (*funcptr) (void), const char **path, const char **sym)
283{ 283{
284 *path = NULL; 284 *path = NULL;
285 *sym = NULL; 285 *sym = NULL;
286#ifdef HAVE_DLADDR 286#ifdef HAVE_DLADDR
287 void *ptr = (void *) funcptr;
287 Dl_info info; 288 Dl_info info;
288 if (dladdr (ptr, &info) && info.dli_fname && info.dli_sname) 289 if (dladdr (ptr, &info) && info.dli_fname && info.dli_sname)
289 { 290 {
diff --git a/src/dynlib.h b/src/dynlib.h
index 168ddbc32c6..2688712a13e 100644
--- a/src/dynlib.h
+++ b/src/dynlib.h
@@ -35,6 +35,6 @@ dynlib_function_ptr dynlib_func (dynlib_handle_ptr h, const char *sym);
35/* Sets *FILE to the file name from which PTR was loaded, and *SYM to 35/* Sets *FILE to the file name from which PTR was loaded, and *SYM to
36 its symbol name. If the file or symbol name could not be 36 its symbol name. If the file or symbol name could not be
37 determined, set the corresponding argument to NULL. */ 37 determined, set the corresponding argument to NULL. */
38void dynlib_addr (void *ptr, const char **file, const char **sym); 38void dynlib_addr (void (*ptr) (void), const char **file, const char **sym);
39 39
40#endif /* DYNLIB_H */ 40#endif /* DYNLIB_H */
diff --git a/src/emacs-module.c b/src/emacs-module.c
index 0b7b3d6ffbe..80a04bafc2d 100644
--- a/src/emacs-module.c
+++ b/src/emacs-module.c
@@ -934,10 +934,10 @@ module_function_documentation (const struct Lisp_Module_Function *function)
934 return function->documentation; 934 return function->documentation;
935} 935}
936 936
937void * 937module_funcptr
938module_function_address (const struct Lisp_Module_Function *function) 938module_function_address (const struct Lisp_Module_Function *function)
939{ 939{
940 return function->subr; 940 return (module_funcptr) function->subr;
941} 941}
942 942
943 943
diff --git a/src/lisp.h b/src/lisp.h
index 8dc44291a8f..f613ce20b0b 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3069,7 +3069,9 @@ enum maxargs
3069/* Call a function F that accepts many args, passing it the remaining args, 3069/* Call a function F that accepts many args, passing it the remaining args,
3070 E.g., 'return CALLN (Fformat, fmt, text);' is less error-prone than 3070 E.g., 'return CALLN (Fformat, fmt, text);' is less error-prone than
3071 '{ Lisp_Object a[2]; a[0] = fmt; a[1] = text; return Fformat (2, a); }'. 3071 '{ Lisp_Object a[2]; a[0] = fmt; a[1] = text; return Fformat (2, a); }'.
3072 CALLN is overkill for simple usages like 'Finsert (1, &text);'. */ 3072 CALLN requires at least one function argument (as C99 prohibits
3073 empty initializers), and is overkill for simple usages like
3074 'Finsert (1, &text);'. */
3073#define CALLN(f, ...) CALLMANY (f, ((Lisp_Object []) {__VA_ARGS__})) 3075#define CALLN(f, ...) CALLMANY (f, ((Lisp_Object []) {__VA_ARGS__}))
3074 3076
3075extern void defvar_lisp (struct Lisp_Objfwd const *, char const *); 3077extern void defvar_lisp (struct Lisp_Objfwd const *, char const *);
@@ -4168,14 +4170,21 @@ XMODULE_FUNCTION (Lisp_Object o)
4168} 4170}
4169 4171
4170#ifdef HAVE_MODULES 4172#ifdef HAVE_MODULES
4173/* A function pointer type good enough for lisp.h. Actual module
4174 function pointers are of a different type that relies on details
4175 internal to emacs-module.c. */
4176typedef void (*module_funcptr) (void);
4177
4171/* Defined in alloc.c. */ 4178/* Defined in alloc.c. */
4172extern Lisp_Object make_user_ptr (void (*finalizer) (void *), void *p); 4179extern Lisp_Object make_user_ptr (void (*finalizer) (void *), void *p);
4173 4180
4174/* Defined in emacs-module.c. */ 4181/* Defined in emacs-module.c. */
4175extern Lisp_Object funcall_module (Lisp_Object, ptrdiff_t, Lisp_Object *); 4182extern Lisp_Object funcall_module (Lisp_Object, ptrdiff_t, Lisp_Object *);
4176extern Lisp_Object module_function_arity (const struct Lisp_Module_Function *); 4183extern Lisp_Object module_function_arity (const struct Lisp_Module_Function *);
4177extern Lisp_Object module_function_documentation (const struct Lisp_Module_Function *); 4184extern Lisp_Object module_function_documentation
4178extern void *module_function_address (const struct Lisp_Module_Function *); 4185 (struct Lisp_Module_Function const *);
4186extern module_funcptr module_function_address
4187 (struct Lisp_Module_Function const *);
4179extern void mark_modules (void); 4188extern void mark_modules (void);
4180extern void init_module_assertions (bool); 4189extern void init_module_assertions (bool);
4181extern void syms_of_module (void); 4190extern void syms_of_module (void);
diff --git a/src/lread.c b/src/lread.c
index 6cd1029cd9f..1c97805ca7a 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -3782,7 +3782,7 @@ string_to_number (char const *string, int base, ptrdiff_t *plen)
3782 state |= E_EXP; 3782 state |= E_EXP;
3783 cp += 3; 3783 cp += 3;
3784 union ieee754_double u 3784 union ieee754_double u
3785 = { .ieee_nan = { .exponent = -1, .quiet_nan = 1, 3785 = { .ieee_nan = { .exponent = 0x7ff, .quiet_nan = 1,
3786 .mantissa0 = n >> 31 >> 1, .mantissa1 = n }}; 3786 .mantissa0 = n >> 31 >> 1, .mantissa1 = n }};
3787 value = u.d; 3787 value = u.d;
3788 } 3788 }
diff --git a/src/pdumper.c b/src/pdumper.c
index 39931c6807f..28045d1959e 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -70,18 +70,18 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
70 70
71#ifdef HAVE_PDUMPER 71#ifdef HAVE_PDUMPER
72 72
73#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7) 73#if GNUC_PREREQ (4, 7, 0)
74# pragma GCC diagnostic error "-Wconversion" 74# pragma GCC diagnostic error "-Wconversion"
75# pragma GCC diagnostic ignored "-Wsign-conversion"
75# pragma GCC diagnostic error "-Wshadow" 76# pragma GCC diagnostic error "-Wshadow"
76# define ALLOW_IMPLICIT_CONVERSION \ 77# define ALLOW_IMPLICIT_CONVERSION \
77 _Pragma ("GCC diagnostic push") \ 78 _Pragma ("GCC diagnostic push") \
78 _Pragma ("GCC diagnostic ignored \"-Wconversion\"") 79 _Pragma ("GCC diagnostic ignored \"-Wconversion\"")
79 _Pragma ("GCC diagnostic ignored \"-Wsign-conversion\"")
80# define DISALLOW_IMPLICIT_CONVERSION \ 80# define DISALLOW_IMPLICIT_CONVERSION \
81 _Pragma ("GCC diagnostic pop") 81 _Pragma ("GCC diagnostic pop")
82#else 82#else
83# define ALLOW_IMPLICIT_CONVERSION ((void)0) 83# define ALLOW_IMPLICIT_CONVERSION ((void) 0)
84# define DISALLOW_IMPLICIT_CONVERSION ((void)0) 84# define DISALLOW_IMPLICIT_CONVERSION ((void) 0)
85#endif 85#endif
86 86
87#define VM_POSIX 1 87#define VM_POSIX 1
@@ -124,7 +124,7 @@ along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. */
124 general-purpose computer made after 1990. */ 124 general-purpose computer made after 1990. */
125verify (sizeof (ptrdiff_t) == sizeof (void *)); 125verify (sizeof (ptrdiff_t) == sizeof (void *));
126verify (sizeof (intptr_t) == sizeof (ptrdiff_t)); 126verify (sizeof (intptr_t) == sizeof (ptrdiff_t));
127verify (sizeof (void (*)(void)) == sizeof (void *)); 127verify (sizeof (void (*) (void)) == sizeof (void *));
128verify (sizeof (ptrdiff_t) <= sizeof (Lisp_Object)); 128verify (sizeof (ptrdiff_t) <= sizeof (Lisp_Object));
129verify (sizeof (ptrdiff_t) <= sizeof (EMACS_INT)); 129verify (sizeof (ptrdiff_t) <= sizeof (EMACS_INT));
130verify (CHAR_BIT == 8); 130verify (CHAR_BIT == 8);
@@ -151,8 +151,7 @@ typedef int_least32_t dump_off;
151#define DUMP_OFF_MIN INT_LEAST32_MIN 151#define DUMP_OFF_MIN INT_LEAST32_MIN
152#define DUMP_OFF_MAX INT_LEAST32_MAX 152#define DUMP_OFF_MAX INT_LEAST32_MAX
153 153
154__attribute__((format (printf,1,2))) 154static void ATTRIBUTE_FORMAT ((printf, 1, 2))
155static void
156dump_trace (const char *fmt, ...) 155dump_trace (const char *fmt, ...)
157{ 156{
158 if (0) 157 if (0)
@@ -734,11 +733,7 @@ dump_builtin_symbol_p (Lisp_Object object)
734static bool 733static bool
735dump_object_self_representing_p (Lisp_Object object) 734dump_object_self_representing_p (Lisp_Object object)
736{ 735{
737 bool result; 736 return FIXNUMP (object) || dump_builtin_symbol_p (object);
738 ALLOW_IMPLICIT_CONVERSION;
739 result = FIXNUMP (object) || dump_builtin_symbol_p (object);
740 DISALLOW_IMPLICIT_CONVERSION;
741 return result;
742} 737}
743 738
744#define DEFINE_FROMLISP_FUNC(fn, type) \ 739#define DEFINE_FROMLISP_FUNC(fn, type) \
@@ -749,10 +744,13 @@ dump_object_self_representing_p (Lisp_Object object)
749 if (FIXNUMP (value)) \ 744 if (FIXNUMP (value)) \
750 return XFIXNUM (value); \ 745 return XFIXNUM (value); \
751 eassert (BIGNUMP (value)); \ 746 eassert (BIGNUMP (value)); \
752 return TYPE_SIGNED (type) \ 747 type result; \
753 ? bignum_to_intmax (value) \ 748 if (TYPE_SIGNED (type)) \
754 : bignum_to_uintmax (value); \ 749 result = bignum_to_intmax (value); \
750 else \
751 result = bignum_to_uintmax (value); \
755 DISALLOW_IMPLICIT_CONVERSION; \ 752 DISALLOW_IMPLICIT_CONVERSION; \
753 return result; \
756 } 754 }
757 755
758#define DEFINE_TOLISP_FUNC(fn, type) \ 756#define DEFINE_TOLISP_FUNC(fn, type) \
@@ -762,10 +760,10 @@ dump_object_self_representing_p (Lisp_Object object)
762 return INT_TO_INTEGER (value); \ 760 return INT_TO_INTEGER (value); \
763 } 761 }
764 762
765DEFINE_FROMLISP_FUNC (intmax_t_from_lisp, intmax_t); 763DEFINE_FROMLISP_FUNC (intmax_t_from_lisp, intmax_t)
766DEFINE_TOLISP_FUNC (intmax_t_to_lisp, intmax_t); 764DEFINE_TOLISP_FUNC (intmax_t_to_lisp, intmax_t)
767DEFINE_FROMLISP_FUNC (dump_off_from_lisp, dump_off); 765DEFINE_FROMLISP_FUNC (dump_off_from_lisp, dump_off)
768DEFINE_TOLISP_FUNC (dump_off_to_lisp, dump_off); 766DEFINE_TOLISP_FUNC (dump_off_to_lisp, dump_off)
769 767
770static void 768static void
771dump_write (struct dump_context *ctx, const void *buf, dump_off nbyte) 769dump_write (struct dump_context *ctx, const void *buf, dump_off nbyte)
@@ -797,8 +795,7 @@ dump_tailq_length (const struct dump_tailq *tailq)
797 return tailq->length; 795 return tailq->length;
798} 796}
799 797
800__attribute__((unused)) 798static void ATTRIBUTE_UNUSED
801static void
802dump_tailq_prepend (struct dump_tailq *tailq, Lisp_Object value) 799dump_tailq_prepend (struct dump_tailq *tailq, Lisp_Object value)
803{ 800{
804 Lisp_Object link = Fcons (value, tailq->head); 801 Lisp_Object link = Fcons (value, tailq->head);
@@ -808,8 +805,7 @@ dump_tailq_prepend (struct dump_tailq *tailq, Lisp_Object value)
808 tailq->length += 1; 805 tailq->length += 1;
809} 806}
810 807
811__attribute__((unused)) 808static void ATTRIBUTE_UNUSED
812static void
813dump_tailq_append (struct dump_tailq *tailq, Lisp_Object value) 809dump_tailq_append (struct dump_tailq *tailq, Lisp_Object value)
814{ 810{
815 Lisp_Object link = Fcons (value, Qnil); 811 Lisp_Object link = Fcons (value, Qnil);
@@ -1593,11 +1589,11 @@ dump_emacs_reloc_immediate (struct dump_context *ctx,
1593 ctx, emacs_ptr, &value, sizeof (value)); \ 1589 ctx, emacs_ptr, &value, sizeof (value)); \
1594 } 1590 }
1595 1591
1596DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_lv, Lisp_Object); 1592DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_lv, Lisp_Object)
1597DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_ptrdiff_t, ptrdiff_t); 1593DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_ptrdiff_t, ptrdiff_t)
1598DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_intmax_t, intmax_t); 1594DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_intmax_t, intmax_t)
1599DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_int, int); 1595DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_int, int)
1600DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_bool, bool); 1596DEFINE_EMACS_IMMEDIATE_FN (dump_emacs_reloc_immediate_bool, bool)
1601 1597
1602/* Add an emacs relocation that makes a raw pointer in Emacs point 1598/* Add an emacs relocation that makes a raw pointer in Emacs point
1603 into the dump. */ 1599 into the dump. */
@@ -2011,8 +2007,10 @@ finish_dump_pvec (struct dump_context *ctx,
2011 union vectorlike_header *out_hdr) 2007 union vectorlike_header *out_hdr)
2012{ 2008{
2013 ALLOW_IMPLICIT_CONVERSION; 2009 ALLOW_IMPLICIT_CONVERSION;
2014 return dump_object_finish (ctx, out_hdr, vectorlike_nbytes (out_hdr)); 2010 dump_off result = dump_object_finish (ctx, out_hdr,
2011 vectorlike_nbytes (out_hdr));
2015 DISALLOW_IMPLICIT_CONVERSION; 2012 DISALLOW_IMPLICIT_CONVERSION;
2013 return result;
2016} 2014}
2017 2015
2018static void 2016static void
@@ -3237,7 +3235,8 @@ static void
3237dump_metadata_for_pdumper (struct dump_context *ctx) 3235dump_metadata_for_pdumper (struct dump_context *ctx)
3238{ 3236{
3239 for (int i = 0; i < nr_dump_hooks; ++i) 3237 for (int i = 0; i < nr_dump_hooks; ++i)
3240 dump_emacs_reloc_to_emacs_ptr_raw (ctx, &dump_hooks[i], dump_hooks[i]); 3238 dump_emacs_reloc_to_emacs_ptr_raw (ctx, &dump_hooks[i],
3239 (void const *) dump_hooks[i]);
3241 dump_emacs_reloc_immediate_int (ctx, &nr_dump_hooks, nr_dump_hooks); 3240 dump_emacs_reloc_immediate_int (ctx, &nr_dump_hooks, nr_dump_hooks);
3242 3241
3243 for (int i = 0; i < nr_remembered_data; ++i) 3242 for (int i = 0; i < nr_remembered_data; ++i)
@@ -3801,8 +3800,8 @@ dump_merge_emacs_relocs (Lisp_Object lreloc_a, Lisp_Object lreloc_b)
3801 dump_off_to_lisp (reloc_a.length)); 3800 dump_off_to_lisp (reloc_a.length));
3802} 3801}
3803 3802
3804typedef void (*drain_reloc_handler)(struct dump_context *, Lisp_Object); 3803typedef void (*drain_reloc_handler) (struct dump_context *, Lisp_Object);
3805typedef Lisp_Object (*drain_reloc_merger)(Lisp_Object a, Lisp_Object b); 3804typedef Lisp_Object (*drain_reloc_merger) (Lisp_Object a, Lisp_Object b);
3806 3805
3807static void 3806static void
3808drain_reloc_list (struct dump_context *ctx, 3807drain_reloc_list (struct dump_context *ctx,
@@ -4040,7 +4039,7 @@ types. */)
4040 ctx->deferred_symbols = Qnil; 4039 ctx->deferred_symbols = Qnil;
4041 4040
4042 ctx->fixups = Qnil; 4041 ctx->fixups = Qnil;
4043 ctx->staticpro_table = CALLN (Fmake_hash_table); 4042 ctx->staticpro_table = Fmake_hash_table (0, NULL);
4044 ctx->symbol_aux = Qnil; 4043 ctx->symbol_aux = Qnil;
4045 ctx->copied_queue = Qnil; 4044 ctx->copied_queue = Qnil;
4046 ctx->cold_queue = Qnil; 4045 ctx->cold_queue = Qnil;
@@ -4587,7 +4586,7 @@ struct dump_memory_map
4587{ 4586{
4588 struct dump_memory_map_spec spec; 4587 struct dump_memory_map_spec spec;
4589 void *mapping; /* Actual mapped memory. */ 4588 void *mapping; /* Actual mapped memory. */
4590 void (*release)(struct dump_memory_map *); 4589 void (*release) (struct dump_memory_map *);
4591 void *private; 4590 void *private;
4592}; 4591};
4593 4592
diff --git a/src/print.c b/src/print.c
index 8b163e3ee39..68ed6781c81 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1787,7 +1787,7 @@ print_vectorlike (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag,
1787 case PVEC_MODULE_FUNCTION: 1787 case PVEC_MODULE_FUNCTION:
1788 { 1788 {
1789 print_c_string ("#<module function ", printcharfun); 1789 print_c_string ("#<module function ", printcharfun);
1790 void *ptr = module_function_address (XMODULE_FUNCTION (obj)); 1790 module_funcptr ptr = module_function_address (XMODULE_FUNCTION (obj));
1791 const char *file = NULL; 1791 const char *file = NULL;
1792 const char *symbol = NULL; 1792 const char *symbol = NULL;
1793 dynlib_addr (ptr, &file, &symbol); 1793 dynlib_addr (ptr, &file, &symbol);
diff --git a/src/xdisp.c b/src/xdisp.c
index 825b74d5392..c77a98023da 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -32910,14 +32910,18 @@ which no explicit name has been set (see `modify-frame-parameters'). */);
32910This variable has the same structure as `mode-line-format' (which see), 32910This variable has the same structure as `mode-line-format' (which see),
32911and is used only on frames for which no explicit name has been set 32911and is used only on frames for which no explicit name has been set
32912\(see `modify-frame-parameters'). */); 32912\(see `modify-frame-parameters'). */);
32913 /* Do not nest calls to pure_list. This works around a bug in
32914 Oracle Developer Studio 12.6. */
32915 Lisp_Object icon_title_name_format
32916 = pure_list (empty_unibyte_string,
32917 intern_c_string ("invocation-name"),
32918 build_pure_c_string ("@"),
32919 intern_c_string ("system-name"));
32913 Vicon_title_format 32920 Vicon_title_format
32914 = Vframe_title_format 32921 = Vframe_title_format
32915 = pure_list (intern_c_string ("multiple-frames"), 32922 = pure_list (intern_c_string ("multiple-frames"),
32916 build_pure_c_string ("%b"), 32923 build_pure_c_string ("%b"),
32917 pure_list (empty_unibyte_string, 32924 icon_title_name_format);
32918 intern_c_string ("invocation-name"),
32919 build_pure_c_string ("@"),
32920 intern_c_string ("system-name")));
32921 32925
32922 DEFVAR_LISP ("message-log-max", Vmessage_log_max, 32926 DEFVAR_LISP ("message-log-max", Vmessage_log_max,
32923 doc: /* Maximum number of lines to keep in the message log buffer. 32927 doc: /* Maximum number of lines to keep in the message log buffer.