From a8fe7202b4d4b86cdc66997dc624a367631abd51 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Sun, 11 Jul 2010 11:27:13 +0200 Subject: [PATCH] Constify functions taking char * * alloc.c (pending_malloc_warning, malloc_warning): Add const. * callproc.c (relocate_fd, getenv_internal_1, getenv_internal) (egetenv): Likewise. * doprnt.c (doprnt): Likewise. * editfns.c (set_time_zone_rule, format2): Likewise. * emacs.c (decode_env_path): Likewise. * eval.c (signal_error, error): Likewise. * insdel.c (replace_range_2): Likewise. * keyboard.c (cmd_error_internal): Likewise. * lread.c (isfloat_string, make_symbol, dir_warning): Likewise. * print.c (write_string, write_string_1, print_error_message): Likewise. * vm-limit.c (warn_function, memory_warnings): Likewise. * xdisp.c (message1, message1_nolog, message_with_string) (vmessage, message, message_nolog): Likewise. * emacs.c: Remove duplicate declaration. * keyboard.h: Likewise. * lisp.h: Update prototypes. --- src/ChangeLog | 19 +++++++++++++++++++ src/alloc.c | 4 ++-- src/callproc.c | 14 ++++++++------ src/doprnt.c | 5 +++-- src/editfns.c | 4 ++-- src/emacs.c | 21 +++++++++------------ src/eval.c | 4 ++-- src/insdel.c | 2 +- src/keyboard.c | 2 +- src/keyboard.h | 1 - src/lisp.h | 45 +++++++++++++++++++++++---------------------- src/lread.c | 20 ++++++++++---------- src/print.c | 7 ++++--- src/vm-limit.c | 4 ++-- src/xdisp.c | 12 ++++++------ 15 files changed, 92 insertions(+), 72 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 8ad8075fb83..d6002ad2b20 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,24 @@ 2010-07-11 Andreas Schwab + * alloc.c (pending_malloc_warning, malloc_warning): Add const. + * callproc.c (relocate_fd, getenv_internal_1, getenv_internal) + (egetenv): Likewise. + * doprnt.c (doprnt): Likewise. + * editfns.c (set_time_zone_rule, format2): Likewise. + * emacs.c (decode_env_path): Likewise. + * eval.c (signal_error, error): Likewise. + * insdel.c (replace_range_2): Likewise. + * keyboard.c (cmd_error_internal): Likewise. + * lread.c (isfloat_string, make_symbol, dir_warning): Likewise. + * print.c (write_string, write_string_1, print_error_message): + Likewise. + * vm-limit.c (warn_function, memory_warnings): Likewise. + * xdisp.c (message1, message1_nolog, message_with_string) + (vmessage, message, message_nolog): Likewise. + * emacs.c: Remove duplicate declaration. + * keyboard.h: Likewise. + * lisp.h: Update prototypes. + * eval.c: Fix indentation problem. * keyboard.c: Include "process.h" diff --git a/src/alloc.c b/src/alloc.c index 36b197e5eac..02c6022e475 100644 --- a/src/alloc.c +++ b/src/alloc.c @@ -298,7 +298,7 @@ static EMACS_INT pure_bytes_used_non_lisp; /* If nonzero, this is a warning delivered by malloc and not yet displayed. */ -char *pending_malloc_warning; +const char *pending_malloc_warning; /* Pre-computed signal argument for use when memory is exhausted. */ @@ -514,7 +514,7 @@ static POINTER_TYPE *pure_alloc (size_t, int); /* Function malloc calls this if it finds we are near exhausting storage. */ void -malloc_warning (char *str) +malloc_warning (const char *str) { pending_malloc_warning = str; } diff --git a/src/callproc.c b/src/callproc.c index 674243f50de..e78d1a9aeaa 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -1291,9 +1291,9 @@ relocate_fd (int fd, int minfd) int new = dup (fd); if (new == -1) { - char *message1 = "Error while setting up child: "; - char *errmessage = strerror (errno); - char *message2 = "\n"; + const char *message1 = "Error while setting up child: "; + const char *errmessage = strerror (errno); + const char *message2 = "\n"; emacs_write (2, message1, strlen (message1)); emacs_write (2, errmessage, strlen (errmessage)); emacs_write (2, message2, strlen (message2)); @@ -1308,7 +1308,8 @@ relocate_fd (int fd, int minfd) } static int -getenv_internal_1 (char *var, int varlen, char **value, int *valuelen, Lisp_Object env) +getenv_internal_1 (const char *var, int varlen, char **value, int *valuelen, + Lisp_Object env) { for (; CONSP (env); env = XCDR (env)) { @@ -1342,7 +1343,8 @@ getenv_internal_1 (char *var, int varlen, char **value, int *valuelen, Lisp_Obje } static int -getenv_internal (char *var, int varlen, char **value, int *valuelen, Lisp_Object frame) +getenv_internal (const char *var, int varlen, char **value, int *valuelen, + Lisp_Object frame) { /* Try to find VAR in Vprocess_environment first. */ if (getenv_internal_1 (var, varlen, value, valuelen, @@ -1403,7 +1405,7 @@ If optional parameter ENV is a list, then search this list instead of /* A version of getenv that consults the Lisp environment lists, easily callable from C. */ char * -egetenv (char *var) +egetenv (const char *var) { char *value; int valuelen; diff --git a/src/doprnt.c b/src/doprnt.c index 1a165145b56..1b45b21e36b 100644 --- a/src/doprnt.c +++ b/src/doprnt.c @@ -59,9 +59,10 @@ along with GNU Emacs. If not, see . */ Integers are passed as C integers. */ int -doprnt (char *buffer, register int bufsize, char *format, char *format_end, va_list ap) +doprnt (char *buffer, register int bufsize, const char *format, + const char *format_end, va_list ap) { - register char *fmt = format; /* Pointer into format string */ + const char *fmt = format; /* Pointer into format string */ register char *bufptr = buffer; /* Pointer into output buffer.. */ /* Use this for sprintf unless we need something really big. */ diff --git a/src/editfns.c b/src/editfns.c index fe493162c01..93ae5647b04 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -2045,7 +2045,7 @@ static char set_time_zone_rule_tz2[] = "TZ=GMT+1"; responsibility to free. */ void -set_time_zone_rule (char *tzstring) +set_time_zone_rule (const char *tzstring) { int envptrs; char **from, **to, **newenv; @@ -4111,7 +4111,7 @@ usage: (format STRING &rest OBJECTS) */) } Lisp_Object -format2 (char *string1, Lisp_Object arg0, Lisp_Object arg1) +format2 (const char *string1, Lisp_Object arg0, Lisp_Object arg1) { Lisp_Object args[3]; args[0] = build_string (string1); diff --git a/src/emacs.c b/src/emacs.c index 92d8b82cbd7..180b2276f4c 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -90,8 +90,6 @@ along with GNU Emacs. If not, see . */ const char emacs_copyright[] = "Copyright (C) 2010 Free Software Foundation, Inc."; const char emacs_version[] = "24.0.50"; -extern void malloc_warning (char *); -extern void set_time_zone_rule (char *); #ifdef HAVE_INDEX extern char *index (const char *, int); #endif @@ -2344,17 +2342,16 @@ synchronize_system_messages_locale () #endif Lisp_Object -decode_env_path (evarname, defalt) - char *evarname, *defalt; +decode_env_path (const char *evarname, const char *defalt) { - register char *path, *p; + const char *path, *p; Lisp_Object lpath, element, tem; /* It's okay to use getenv here, because this function is only used to initialize variables when Emacs starts up, and isn't called after that. */ if (evarname != 0) - path = (char *) getenv (evarname); + path = getenv (evarname); else path = 0; if (!path) @@ -2363,18 +2360,18 @@ decode_env_path (evarname, defalt) /* Ensure values from the environment use the proper directory separator. */ if (path) { - p = alloca (strlen (path) + 1); - strcpy (p, path); - path = p; - - dostounix_filename (path); + char *path_copy = alloca (strlen (path) + 1); + strcpy (path_copy, path); + dostounix_filename (path_copy); + path = path_copy; } #endif lpath = Qnil; while (1) { p = index (path, SEPCHAR); - if (!p) p = path + strlen (path); + if (!p) + p = path + strlen (path); element = (p - path ? make_string (path, p - path) : build_string (".")); diff --git a/src/eval.c b/src/eval.c index e90c7f2211b..1a7eb4a123e 100644 --- a/src/eval.c +++ b/src/eval.c @@ -1775,7 +1775,7 @@ xsignal3 (Lisp_Object error_symbol, Lisp_Object arg1, Lisp_Object arg2, Lisp_Obj If ARG is not a genuine list, make it a one-element list. */ void -signal_error (char *s, Lisp_Object arg) +signal_error (const char *s, Lisp_Object arg) { Lisp_Object tortoise, hare; @@ -1995,7 +1995,7 @@ find_handler_clause (Lisp_Object handlers, Lisp_Object conditions, /* VARARGS 1 */ void -error (char *m, ...) +error (const char *m, ...) { char buf[200]; int size = 200; diff --git a/src/insdel.c b/src/insdel.c index 8c6e8f6364d..8b0b2f7ab01 100644 --- a/src/insdel.c +++ b/src/insdel.c @@ -1628,7 +1628,7 @@ replace_range (EMACS_INT from, EMACS_INT to, Lisp_Object new, void replace_range_2 (EMACS_INT from, EMACS_INT from_byte, EMACS_INT to, EMACS_INT to_byte, - char *ins, EMACS_INT inschars, EMACS_INT insbytes, + const char *ins, EMACS_INT inschars, EMACS_INT insbytes, int markers) { EMACS_INT nbytes_del, nchars_del; diff --git a/src/keyboard.c b/src/keyboard.c index b438d35018f..bf3a01fc481 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -1238,7 +1238,7 @@ cmd_error (Lisp_Object data) string. */ void -cmd_error_internal (Lisp_Object data, char *context) +cmd_error_internal (Lisp_Object data, const char *context) { struct frame *sf = SELECTED_FRAME (); diff --git a/src/keyboard.h b/src/keyboard.h index 98c735023d7..a6eb750c373 100644 --- a/src/keyboard.h +++ b/src/keyboard.h @@ -468,7 +468,6 @@ extern void clear_waiting_for_input (void); extern void swallow_events (int); extern int help_char_p (Lisp_Object); extern void quit_throw_to_read_char (void) NO_RETURN; -extern void cmd_error_internal (Lisp_Object, char *); extern int lucid_event_type_list_p (Lisp_Object); extern void kbd_buffer_store_event (struct input_event *); extern void kbd_buffer_store_event_hold (struct input_event *, diff --git a/src/lisp.h b/src/lisp.h index 16fe4702d5c..d59b75caa2f 100644 --- a/src/lisp.h +++ b/src/lisp.h @@ -2616,7 +2616,7 @@ extern void adjust_markers_for_delete (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT); extern void replace_range (EMACS_INT, EMACS_INT, Lisp_Object, int, int, int); extern void replace_range_2 (EMACS_INT, EMACS_INT, EMACS_INT, EMACS_INT, - char *, EMACS_INT, EMACS_INT, int); + const char *, EMACS_INT, EMACS_INT, int); extern void syms_of_insdel (void); /* Defined in dispnew.c */ @@ -2650,16 +2650,16 @@ extern void restore_message (void); extern Lisp_Object current_message (void); extern void set_message (const char *s, Lisp_Object, int, int); extern void clear_message (int, int); -extern void message (char *, ...); -extern void message_nolog (char *, ...); -extern void message1 (char *); -extern void message1_nolog (char *); +extern void message (const char *, ...); +extern void message_nolog (const char *, ...); +extern void message1 (const char *); +extern void message1_nolog (const char *); extern void message2 (const char *, int, int); extern void message2_nolog (const char *, int, int); extern void message3 (Lisp_Object, int, int); extern void message3_nolog (Lisp_Object, int, int); extern void message_dolog (const char *, int, int, int); -extern void message_with_string (char *, Lisp_Object, int); +extern void message_with_string (const char *, Lisp_Object, int); extern void message_log_maybe_newline (void); extern void update_echo_area (void); extern void truncate_echo_area (int); @@ -2680,14 +2680,14 @@ extern int pos_visible_p (struct window *, int, int *, extern void syms_of_xsettings (void); /* Defined in vm-limit.c. */ -extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (char*)); +extern void memory_warnings (POINTER_TYPE *, void (*warnfun) (const char *)); /* Defined in alloc.c */ extern void check_pure_size (void); extern void allocate_string_data (struct Lisp_String *, int, int); extern void reset_malloc_hooks (void); extern void uninterrupt_malloc (void); -extern void malloc_warning (char *); +extern void malloc_warning (const char *); extern void memory_full (void) NO_RETURN; extern void buffer_memory_full (void) NO_RETURN; extern int survives_gc_p (Lisp_Object); @@ -2791,16 +2791,17 @@ extern Lisp_Object Qexternal_debugging_output; extern void temp_output_buffer_setup (const char *); extern int print_level, print_escape_newlines; extern Lisp_Object Qprint_escape_newlines; -extern void write_string (char *, int); -extern void write_string_1 (char *, int, Lisp_Object); -extern void print_error_message (Lisp_Object, Lisp_Object, char *, Lisp_Object); +extern void write_string (const char *, int); +extern void write_string_1 (const char *, int, Lisp_Object); +extern void print_error_message (Lisp_Object, Lisp_Object, const char *, + Lisp_Object); extern Lisp_Object internal_with_output_to_temp_buffer (const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object); extern void float_to_string (unsigned char *, double); extern void syms_of_print (void); /* Defined in doprnt.c */ -extern int doprnt (char *, int, char *, char *, va_list); +extern int doprnt (char *, int, const char *, const char *, va_list); /* Defined in lread.c */ extern Lisp_Object Qvariable_documentation, Qstandard_input; @@ -2819,7 +2820,7 @@ EXFUN (Feval_region, 4); extern Lisp_Object check_obarray (Lisp_Object); extern Lisp_Object intern (const char *); extern Lisp_Object intern_c_string (const char *); -extern Lisp_Object make_symbol (char *); +extern Lisp_Object make_symbol (const char *); extern Lisp_Object oblookup (Lisp_Object, const char *, int, int); #define LOADHIST_ATTACH(x) \ do { \ @@ -2829,10 +2830,10 @@ extern Lisp_Object Vcurrent_load_list; extern Lisp_Object Vload_history, Vload_suffixes, Vload_file_rep_suffixes; extern int openp (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object *, Lisp_Object); -extern int isfloat_string (char *, int); +extern int isfloat_string (const char *, int); extern void map_obarray (Lisp_Object, void (*) (Lisp_Object, Lisp_Object), Lisp_Object); -extern void dir_warning (char *, Lisp_Object); +extern void dir_warning (const char *, Lisp_Object); extern void close_load_descs (void); extern void init_obarray (void); extern void init_lread (void); @@ -2885,7 +2886,7 @@ extern void xsignal0 (Lisp_Object) NO_RETURN; extern void xsignal1 (Lisp_Object, Lisp_Object) NO_RETURN; extern void xsignal2 (Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; extern void xsignal3 (Lisp_Object, Lisp_Object, Lisp_Object, Lisp_Object) NO_RETURN; -extern void signal_error (char *, Lisp_Object) NO_RETURN; +extern void signal_error (const char *, Lisp_Object) NO_RETURN; EXFUN (Fautoload, 5); EXFUN (Fcommandp, 2); EXFUN (Feval, 1); @@ -2912,7 +2913,7 @@ extern Lisp_Object internal_condition_case_n (Lisp_Object (*) (int, Lisp_Object extern void specbind (Lisp_Object, Lisp_Object); extern void record_unwind_protect (Lisp_Object (*) (Lisp_Object), Lisp_Object); extern Lisp_Object unbind_to (int, Lisp_Object); -extern void error (char *, ...) NO_RETURN; +extern void error (const char *, ...) NO_RETURN; extern void do_autoload (Lisp_Object, Lisp_Object); extern Lisp_Object un_autoload (Lisp_Object); EXFUN (Ffetch_bytecode, 1); @@ -2951,7 +2952,7 @@ EXFUN (Fbolp, 0); EXFUN (Fbobp, 0); EXFUN (Fformat, MANY); EXFUN (Fmessage, MANY); -extern Lisp_Object format2 (char *, Lisp_Object, Lisp_Object); +extern Lisp_Object format2 (const char *, Lisp_Object, Lisp_Object); EXFUN (Fbuffer_substring, 2); EXFUN (Fbuffer_string, 0); extern Lisp_Object save_excursion_save (void); @@ -2977,7 +2978,7 @@ EXFUN (Fdelete_field, 1); EXFUN (Ffield_beginning, 3); EXFUN (Ffield_end, 3); EXFUN (Ffield_string_no_properties, 1); -extern void set_time_zone_rule (char *); +extern void set_time_zone_rule (const char *); /* Defined in buffer.c */ extern int mouse_face_overlay_overlaps (Lisp_Object); @@ -3177,7 +3178,7 @@ extern int detect_input_pending (void); extern int detect_input_pending_ignore_squeezables (void); extern int detect_input_pending_run_timers (int); extern void safe_run_hooks (Lisp_Object); -extern void cmd_error_internal (Lisp_Object, char *); +extern void cmd_error_internal (Lisp_Object, const char *); extern Lisp_Object command_loop_1 (void); extern Lisp_Object recursive_edit_1 (void); extern void record_auto_save (void); @@ -3241,7 +3242,7 @@ extern void frames_bury_buffer (Lisp_Object); extern void syms_of_frame (void); /* Defined in emacs.c */ -extern Lisp_Object decode_env_path (char *, char *); +extern Lisp_Object decode_env_path (const char *, const char *); extern Lisp_Object Vinvocation_name, Vinvocation_directory; extern Lisp_Object Vbefore_init_time, Vafter_init_time; extern Lisp_Object Vinstallation_directory; @@ -3527,7 +3528,7 @@ extern void xfree (POINTER_TYPE *); extern char *xstrdup (const char *); -extern char *egetenv (char *); +extern char *egetenv (const char *); /* Set up the name of the machine we're running on. */ extern void init_system_name (void); diff --git a/src/lread.c b/src/lread.c index c8c464875bf..b9e47e3fccf 100644 --- a/src/lread.c +++ b/src/lread.c @@ -3190,11 +3190,10 @@ substitute_in_interval (INTERVAL interval, Lisp_Object arg) #define EXP_INT 16 int -isfloat_string (register char *cp, int ignore_trailing) +isfloat_string (const char *cp, int ignore_trailing) { - register int state; - - char *start = cp; + int state; + const char *start = cp; state = 0; if (*cp == '+' || *cp == '-') @@ -3245,7 +3244,8 @@ isfloat_string (register char *cp, int ignore_trailing) } return ((ignore_trailing - || (*cp == 0) || (*cp == ' ') || (*cp == '\t') || (*cp == '\n') || (*cp == '\r') || (*cp == '\f')) + || *cp == 0 || *cp == ' ' || *cp == '\t' || *cp == '\n' + || *cp == '\r' || *cp == '\f') && (state == (LEAD_INT|DOT_CHAR|TRAIL_INT) || state == (DOT_CHAR|TRAIL_INT) || state == (LEAD_INT|E_CHAR|EXP_INT) @@ -3588,13 +3588,13 @@ intern_c_string (const char *str) /* Create an uninterned symbol with name STR. */ Lisp_Object -make_symbol (char *str) +make_symbol (const char *str) { int len = strlen (str); - return Fmake_symbol ((!NILP (Vpurify_flag) - ? make_pure_string (str, len, len, 0) - : make_string (str, len))); + return Fmake_symbol (!NILP (Vpurify_flag) + ? make_pure_string (str, len, len, 0) + : make_string (str, len)); } DEFUN ("intern", Fintern, Sintern, 1, 2, 0, @@ -4170,7 +4170,7 @@ init_lread (void) does not exist. Print it on stderr and put it in *Messages*. */ void -dir_warning (char *format, Lisp_Object dirname) +dir_warning (const char *format, Lisp_Object dirname) { char *buffer = (char *) alloca (SCHARS (dirname) + strlen (format) + 5); diff --git a/src/print.c b/src/print.c index 0a0e6c7452c..97f6494678f 100644 --- a/src/print.c +++ b/src/print.c @@ -540,7 +540,7 @@ PRINTCHARFUN defaults to the value of `standard-output' (which see). */) Do not use this on the contents of a Lisp string. */ void -write_string (char *data, int size) +write_string (const char *data, int size) { PRINTDECLARE; Lisp_Object printcharfun; @@ -557,7 +557,7 @@ write_string (char *data, int size) Do not use this on the contents of a Lisp string. */ void -write_string_1 (char *data, int size, Lisp_Object printcharfun) +write_string_1 (const char *data, int size, Lisp_Object printcharfun) { PRINTDECLARE; @@ -1007,7 +1007,8 @@ error message is constructed. */) CALLER is the Lisp function inside which the error was signaled. */ void -print_error_message (Lisp_Object data, Lisp_Object stream, char *context, Lisp_Object caller) +print_error_message (Lisp_Object data, Lisp_Object stream, const char *context, + Lisp_Object caller) { Lisp_Object errname, errmsg, file_error, tail; struct gcpro gcpro1; diff --git a/src/vm-limit.c b/src/vm-limit.c index cb42f78701b..aca0e0afb47 100644 --- a/src/vm-limit.c +++ b/src/vm-limit.c @@ -42,7 +42,7 @@ static enum warnlevel warnlevel; /* Function to call to issue a warning; 0 means don't issue them. */ -static void (*warn_function) (char *); +static void (*warn_function) (const char *); /* Start of data space; can be changed by calling malloc_init. */ static POINTER data_space_start; @@ -289,7 +289,7 @@ start_of_data (void) WARNFUN specifies the function to call to issue a warning. */ void -memory_warnings (POINTER start, void (*warnfun) (char *)) +memory_warnings (POINTER start, void (*warnfun) (const char *)) { extern void (* __after_morecore_hook) (void); /* From gmalloc.c */ diff --git a/src/xdisp.c b/src/xdisp.c index 80efbb5679c..b68425da743 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -8413,7 +8413,7 @@ message3_nolog (Lisp_Object m, int nbytes, int multibyte) that was alloca'd. */ void -message1 (char *m) +message1 (const char *m) { message2 (m, (m ? strlen (m) : 0), 0); } @@ -8422,7 +8422,7 @@ message1 (char *m) /* The non-logging counterpart of message1. */ void -message1_nolog (char *m) +message1_nolog (const char *m) { message2_nolog (m, (m ? strlen (m) : 0), 0); } @@ -8431,7 +8431,7 @@ message1_nolog (char *m) which gets replaced with STRING. */ void -message_with_string (char *m, Lisp_Object string, int log) +message_with_string (const char *m, Lisp_Object string, int log) { CHECK_STRING (string); @@ -8495,7 +8495,7 @@ message_with_string (char *m, Lisp_Object string, int log) any existing message, and let the mini-buffer text show through. */ static void -vmessage (char *m, va_list ap) +vmessage (const char *m, va_list ap) { if (noninteractive) { @@ -8549,7 +8549,7 @@ vmessage (char *m, va_list ap) } void -message (char *m, ...) +message (const char *m, ...) { va_list ap; va_start (ap, m); @@ -8561,7 +8561,7 @@ message (char *m, ...) /* The non-logging version of message. */ void -message_nolog (char *m, ...) +message_nolog (const char *m, ...) { Lisp_Object old_log_max; va_list ap; -- 2.39.2