[PATCH 7/10] cmd: Constify some function parameters (resent) (try 2)

Frédéric Delanoy frederic.delanoy at gmail.com
Fri Aug 19 18:58:59 CDT 2011


---
 programs/cmd/batch.c       |    3 ++-
 programs/cmd/builtins.c    |   39 +++++++++++++++++++++------------------
 programs/cmd/tests/batch.c |    2 +-
 programs/cmd/wcmd.h        |   34 ++++++++++++++++++----------------
 programs/cmd/wcmdmain.c    |   22 ++++++++++++----------
 5 files changed, 54 insertions(+), 46 deletions(-)

diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c
index f012eaf..03c92ee 100644
--- a/programs/cmd/batch.c
+++ b/programs/cmd/batch.c
@@ -291,7 +291,8 @@ void WCMD_splitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHA
  *  Hence search forwards until find an invalid modifier, and then
  *  backwards until find for variable or 0-9
  */
-void WCMD_HandleTildaModifiers(WCHAR **start, WCHAR *forVariable, WCHAR *forValue, BOOL justFors) {
+void WCMD_HandleTildaModifiers(WCHAR **start, const WCHAR *forVariable,
+                               const WCHAR *forValue, BOOL justFors) {
 
 #define NUMMODIFIERS 11
   static const WCHAR validmodifiers[NUMMODIFIERS] = {
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 0e95cc3..cc3f5f6 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -41,8 +41,9 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(cmd);
 
-static void WCMD_part_execute(CMD_LIST **commands, WCHAR *firstcmd, WCHAR *variable,
-                               WCHAR *value, BOOL isIF, BOOL conditionTRUE);
+static void WCMD_part_execute(CMD_LIST **commands, const WCHAR *firstcmd,
+                              const WCHAR *variable, const WCHAR *value,
+                              BOOL isIF, BOOL conditionTRUE);
 
 struct env_stack *saved_environment;
 struct env_stack *pushd_directories;
@@ -77,7 +78,8 @@ static const WCHAR nullW[] = {'\0'};
  *                   set to TRUE
  *
  */
-static BOOL WCMD_ask_confirm (WCHAR *message, BOOL showSureText, BOOL *optionAll) {
+static BOOL WCMD_ask_confirm (const WCHAR *message, BOOL showSureText,
+                              const BOOL *optionAll) {
 
     WCHAR  msgbuffer[MAXSTRING];
     WCHAR  Ybuffer[MAXSTRING];
@@ -164,7 +166,7 @@ void WCMD_change_tty (void) {
  *
  */
 
-void WCMD_choice (WCHAR * command) {
+void WCMD_choice (const WCHAR * command) {
 
     static const WCHAR bellW[] = {7,0};
     static const WCHAR commaW[] = {',',0};
@@ -186,7 +188,7 @@ void WCMD_choice (WCHAR * command) {
     have_console = GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE), &oldmode);
     errorlevel = 0;
 
-    my_command = WCMD_strdupW(WCMD_skip_leading_spaces(command));
+    my_command = WCMD_strdupW(WCMD_skip_leading_spaces((WCHAR*) command));
     if (!my_command)
         return;
 
@@ -587,7 +589,7 @@ static void WCMD_delete_parse_attributes(DWORD *wantSet, DWORD *wantClear) {
  * *pPrompted is set to TRUE if the user is prompted.
  * (If /P supplied, del will prompt for individual files later.)
  */
-static BOOL WCMD_delete_confirm_wildcard(WCHAR *filename, BOOL *pPrompted) {
+static BOOL WCMD_delete_confirm_wildcard(const WCHAR *filename, BOOL *pPrompted) {
     static const WCHAR parmP[] = {'/','P','\0'};
     static const WCHAR parmQ[] = {'/','Q','\0'};
 
@@ -627,7 +629,7 @@ static BOOL WCMD_delete_confirm_wildcard(WCHAR *filename, BOOL *pPrompted) {
  * If /S was given, does it recursively.
  * Returns TRUE if a file was deleted.
  */
-static BOOL WCMD_delete_one (WCHAR *thisArg) {
+static BOOL WCMD_delete_one (const WCHAR *thisArg) {
 
     static const WCHAR parmP[] = {'/','P','\0'};
     static const WCHAR parmS[] = {'/','S','\0'};
@@ -1215,8 +1217,9 @@ void WCMD_for (WCHAR *p, CMD_LIST **cmdList) {
  * first command to be executed may not be at the front of the
  * commands->thiscommand string (eg. it may point after a DO or ELSE)
  */
-void WCMD_part_execute(CMD_LIST **cmdList, WCHAR *firstcmd, WCHAR *variable,
-                       WCHAR *value, BOOL isIF, BOOL conditionTRUE) {
+static void WCMD_part_execute(CMD_LIST **cmdList, const WCHAR *firstcmd,
+                              const WCHAR *variable, const WCHAR *value,
+                              BOOL isIF, BOOL conditionTRUE) {
 
   CMD_LIST *curPosition = *cmdList;
   int myDepth = (*cmdList)->bracketDepth;
@@ -1311,11 +1314,11 @@ void WCMD_part_execute(CMD_LIST **cmdList, WCHAR *firstcmd, WCHAR *variable,
  *	Simple on-line help. Help text is stored in the resource file.
  */
 
-void WCMD_give_help (WCHAR *command) {
+void WCMD_give_help (const WCHAR *command) {
 
   int i;
 
-  command = WCMD_skip_leading_spaces(command);
+  command = WCMD_skip_leading_spaces((WCHAR*) command);
   if (strlenW(command) == 0) {
     WCMD_output_asis (WCMD_LoadMessage(WCMD_ALLHELP));
   }
@@ -2077,7 +2080,7 @@ void WCMD_setshow_attrib (void) {
  *	Set/Show the current default directory
  */
 
-void WCMD_setshow_default (WCHAR *command) {
+void WCMD_setshow_default (const WCHAR *command) {
 
   BOOL status;
   WCHAR string[1024];
@@ -2361,7 +2364,7 @@ void WCMD_setshow_env (WCHAR *s) {
  * Set/Show the path environment variable
  */
 
-void WCMD_setshow_path (WCHAR *command) {
+void WCMD_setshow_path (const WCHAR *command) {
 
   WCHAR string[1024];
   DWORD status;
@@ -2452,7 +2455,7 @@ void WCMD_setshow_time (void) {
  * Optional /n says where to start shifting (n=0-8)
  */
 
-void WCMD_shift (WCHAR *command) {
+void WCMD_shift (const WCHAR *command) {
   int start;
 
   if (context != NULL) {
@@ -2483,7 +2486,7 @@ void WCMD_shift (WCHAR *command) {
  *
  * Set the console title
  */
-void WCMD_title (WCHAR *command) {
+void WCMD_title (const WCHAR *command) {
   SetConsoleTitleW(command);
 }
 
@@ -2663,7 +2666,7 @@ void WCMD_more (WCHAR *command) {
  * it...
  */
 
-void WCMD_verify (WCHAR *command) {
+void WCMD_verify (const WCHAR *command) {
 
   int count;
 
@@ -2702,7 +2705,7 @@ void WCMD_version (void) {
  * Display volume info and/or set volume label. Returns 0 if error.
  */
 
-int WCMD_volume (int mode, WCHAR *path) {
+int WCMD_volume (int mode, const WCHAR *path) {
 
   DWORD count, serial;
   WCHAR string[MAX_PATH], label[MAX_PATH], curdir[MAX_PATH];
@@ -2780,7 +2783,7 @@ void WCMD_exit (CMD_LIST **cmdList) {
  *	Lists or sets file associations  (assoc = TRUE)
  *      Lists or sets file types         (assoc = FALSE)
  */
-void WCMD_assoc (WCHAR *command, BOOL assoc) {
+void WCMD_assoc (const WCHAR *command, BOOL assoc) {
 
     HKEY    key;
     DWORD   accessOptions = KEY_READ;
diff --git a/programs/cmd/tests/batch.c b/programs/cmd/tests/batch.c
index 17649d4..0e7ca65 100644
--- a/programs/cmd/tests/batch.c
+++ b/programs/cmd/tests/batch.c
@@ -283,7 +283,7 @@ cleanup:
     HeapFree(GetProcessHeap(), 0, (LPVOID)actual_cmd_data);
 }
 
-static void run_from_file(char *file_name)
+static void run_from_file(const char *file_name)
 {
     char out_name[MAX_PATH];
     const char *test_data, *out_data;
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index 1104d8e..19ba913 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -48,11 +48,11 @@ typedef struct _CMD_LIST {
   WCHAR               pipeFile[MAX_PATH]; /* Where to get input from for pipes */
 } CMD_LIST;
 
-void WCMD_assoc (WCHAR *, BOOL);
+void WCMD_assoc (const WCHAR *, BOOL);
 void WCMD_batch (WCHAR *, WCHAR *, int, WCHAR *, HANDLE);
 void WCMD_call (WCHAR *command);
 void WCMD_change_tty (void);
-void WCMD_choice (WCHAR *);
+void WCMD_choice (const WCHAR *);
 void WCMD_clear_screen (void);
 void WCMD_color (void);
 void WCMD_copy (void);
@@ -64,7 +64,7 @@ void WCMD_endlocal (void);
 void WCMD_enter_paged_mode(const WCHAR *);
 void WCMD_exit (CMD_LIST **cmdList);
 void WCMD_for (WCHAR *, CMD_LIST **cmdList);
-void WCMD_give_help (WCHAR *command);
+void WCMD_give_help (const WCHAR *command);
 void WCMD_goto (CMD_LIST **cmdList);
 void WCMD_if (WCHAR *, CMD_LIST **cmdList);
 void WCMD_leave_paged_mode(void);
@@ -82,36 +82,38 @@ void WCMD_run_program (WCHAR *command, int called);
 void WCMD_setlocal (const WCHAR *command);
 void WCMD_setshow_attrib (void);
 void WCMD_setshow_date (void);
-void WCMD_setshow_default (WCHAR *command);
+void WCMD_setshow_default (const WCHAR *command);
 void WCMD_setshow_env (WCHAR *command);
-void WCMD_setshow_path (WCHAR *command);
+void WCMD_setshow_path (const WCHAR *command);
 void WCMD_setshow_prompt (void);
 void WCMD_setshow_time (void);
-void WCMD_shift (WCHAR *command);
-void WCMD_title (WCHAR *);
+void WCMD_shift (const WCHAR *command);
+void WCMD_title (const WCHAR *);
 void WCMD_type (WCHAR *);
-void WCMD_verify (WCHAR *command);
+void WCMD_verify (const WCHAR *command);
 void WCMD_version (void);
-int  WCMD_volume (int mode, WCHAR *command);
+int  WCMD_volume (int mode, const WCHAR *command);
 
 WCHAR *WCMD_fgets (WCHAR *s, int n, HANDLE stream);
 WCHAR *WCMD_parameter (WCHAR *s, int n, WCHAR **where);
 WCHAR *WCMD_skip_leading_spaces (WCHAR *string);
-void WCMD_HandleTildaModifiers(WCHAR **start, WCHAR *forVariable, WCHAR *forValue, BOOL justFors);
+void WCMD_HandleTildaModifiers(WCHAR **start, const WCHAR *forVariable, const WCHAR *forValue, BOOL justFors);
 
 void WCMD_splitpath(const WCHAR* path, WCHAR* drv, WCHAR* dir, WCHAR* name, WCHAR* ext);
 void WCMD_opt_s_strip_quotes(WCHAR *cmd);
 WCHAR *WCMD_LoadMessage(UINT id);
-WCHAR *WCMD_strdupW(WCHAR *input);
-void WCMD_strsubstW(WCHAR *start, WCHAR* next, WCHAR* insert, int len);
+WCHAR *WCMD_strdupW(const WCHAR *input);
+void WCMD_strsubstW(WCHAR *start, const WCHAR* next, const WCHAR* insert, int len);
 BOOL WCMD_ReadFile(const HANDLE hIn, WCHAR *intoBuf, const DWORD maxChars,
                    LPDWORD charsRead, const LPOVERLAPPED unused);
 
-WCHAR    *WCMD_ReadAndParseLine(WCHAR *initialcmd, CMD_LIST **output, HANDLE readFrom);
-CMD_LIST *WCMD_process_commands(CMD_LIST *thisCmd, BOOL oneBracket, WCHAR *var, WCHAR *val);
+WCHAR    *WCMD_ReadAndParseLine(const WCHAR *initialcmd, CMD_LIST **output, HANDLE readFrom);
+CMD_LIST *WCMD_process_commands(CMD_LIST *thisCmd, BOOL oneBracket,
+                                const WCHAR *var, const WCHAR *val);
 void      WCMD_free_commands(CMD_LIST *cmds);
-void      WCMD_execute (WCHAR *orig_command, WCHAR *redirects, WCHAR *parameter,
-                        WCHAR *substitution, CMD_LIST **cmdList);
+void      WCMD_execute (const WCHAR *orig_command, const WCHAR *redirects,
+                        const WCHAR *parameter, const WCHAR *substitution,
+                        CMD_LIST **cmdList);
 
 /*	Data structure to hold context when executing batch files */
 
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index c23fefd..d758857 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -417,7 +417,7 @@ static void WCMD_show_prompt (void) {
  * WCMD_strdupW
  *    A wide version of strdup as its missing from unicode.h
  */
-WCHAR *WCMD_strdupW(WCHAR *input) {
+WCHAR *WCMD_strdupW(const WCHAR *input) {
    int len=strlenW(input)+1;
    WCHAR *result = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
    memcpy(result, input, len * sizeof(WCHAR));
@@ -430,7 +430,7 @@ WCHAR *WCMD_strdupW(WCHAR *input) {
  *    It's up to the caller to ensure there is enough space in the
  *    destination buffer.
  */
-void WCMD_strsubstW(WCHAR* start, WCHAR* next, WCHAR* insert, int len) {
+void WCMD_strsubstW(WCHAR *start, const WCHAR *next, const WCHAR *insert, int len) {
 
    if (len < 0)
       len=insert ? lstrlenW(insert) : 0;
@@ -511,7 +511,8 @@ static inline BOOL WCMD_is_magic_envvar(const WCHAR *s, const WCHAR *magicvar)
  *
  *	Expands environment variables, allowing for WCHARacter substitution
  */
-static WCHAR *WCMD_expand_envvar(WCHAR *start, WCHAR *forVar, WCHAR *forVal) {
+static WCHAR *WCMD_expand_envvar(WCHAR *start,
+                                 const WCHAR *forVar, const WCHAR *forVal) {
     WCHAR *endOfVar = NULL, *s;
     WCHAR *colonpos = NULL;
     WCHAR thisVar[MAXSTRING];
@@ -765,7 +766,8 @@ static WCHAR *WCMD_expand_envvar(WCHAR *start, WCHAR *forVar, WCHAR *forVal) {
  * read in and not again, except for 'for' variable substitution.
  * eg. As evidence, "echo %1 && shift && echo %1" or "echo %%path%%"
  */
-static void handleExpansion(WCHAR *cmd, BOOL justFors, WCHAR *forVariable, WCHAR *forValue) {
+static void handleExpansion(WCHAR *cmd, BOOL justFors,
+                            const WCHAR *forVariable, const WCHAR *forValue) {
 
   /* For commands in a context (batch program):                  */
   /*   Expand environment variables in a batch file %{0-9} first */
@@ -841,7 +843,7 @@ static void handleExpansion(WCHAR *cmd, BOOL justFors, WCHAR *forVariable, WCHAR
  *	second in p2. Any subsequent non-qualifier strings are lost.
  *	Parameters in quotes are handled.
  */
-static void WCMD_parse (WCHAR *s, WCHAR *q, WCHAR *p1, WCHAR *p2)
+static void WCMD_parse (const WCHAR *s, WCHAR *q, WCHAR *p1, WCHAR *p2)
 {
   int p = 0;
 
@@ -1191,8 +1193,8 @@ void WCMD_run_program (WCHAR *command, int called) {
  * Process one command. If the command is EXIT this routine does not return.
  * We will recurse through here executing batch files.
  */
-void WCMD_execute (WCHAR *command, WCHAR *redirects,
-                   WCHAR *forVariable, WCHAR *forValue,
+void WCMD_execute (const WCHAR *command, const WCHAR *redirects,
+                   const WCHAR *forVariable, const WCHAR *forValue,
                    CMD_LIST **cmdList)
 {
     WCHAR *cmd, *p, *redir;
@@ -1673,7 +1675,7 @@ static void WCMD_addCommand(WCHAR *command, int *commandLen,
  *   Returns TRUE if this is an end quote, and FALSE if it is not.
  *
  */
-static BOOL WCMD_IsEndQuote(WCHAR *quote, int quoteIndex)
+static BOOL WCMD_IsEndQuote(const WCHAR *quote, int quoteIndex)
 {
     int quoteCount = quoteIndex;
     int i;
@@ -1725,7 +1727,7 @@ static BOOL WCMD_IsEndQuote(WCHAR *quote, int quoteIndex)
  *     - Anything else gets put into the command string (including
  *            redirects)
  */
-WCHAR *WCMD_ReadAndParseLine(WCHAR *optionalcmd, CMD_LIST **output, HANDLE readFrom) {
+WCHAR *WCMD_ReadAndParseLine(const WCHAR *optionalcmd, CMD_LIST **output, HANDLE readFrom) {
 
     WCHAR    *curPos;
     int       inQuotes = 0;
@@ -2156,7 +2158,7 @@ WCHAR *WCMD_ReadAndParseLine(WCHAR *optionalcmd, CMD_LIST **output, HANDLE readF
  * Process all the commands read in so far
  */
 CMD_LIST *WCMD_process_commands(CMD_LIST *thisCmd, BOOL oneBracket,
-                                WCHAR *var, WCHAR *val) {
+                                const WCHAR *var, const WCHAR *val) {
 
     int bdepth = -1;
 
-- 
1.7.6




More information about the wine-patches mailing list