From 586e9f1e36c6717b371a6ca7f492768020930a7d Mon Sep 17 00:00:00 2001 From: "Darryl L. Miles" Date: Thu, 10 Oct 2024 20:16:36 +0100 Subject: [PATCH] Lookup() constify WindGetCommandTable() returns 'const' This commit related to the dynamic creation of data that is used to parse commands and options via Lookup. windows/windows.h: Lookup() constify call-site tcltk/tclmagic.c: Lookup() constify call-site graphics/W3Dmain.c: Lookup() constify call-site windows/windSend.c: Lookup() constify call-site windows/windMain.c: Lookup() constify call-site windows/windInt.h: Lookup() constify call-site textio/txMain.c: Lookup() constify call-site --- graphics/W3Dmain.c | 2 +- tcltk/tclmagic.c | 2 +- textio/txMain.c | 2 +- windows/windInt.h | 2 +- windows/windMain.c | 19 ++++++++++--------- windows/windSend.c | 2 +- windows/windows.h | 2 +- 7 files changed, 16 insertions(+), 15 deletions(-) diff --git a/graphics/W3Dmain.c b/graphics/W3Dmain.c index 5c45c1d0..7b22bc69 100644 --- a/graphics/W3Dmain.c +++ b/graphics/W3Dmain.c @@ -645,7 +645,7 @@ w3dHelp(w, cmd) MagWindow *w; TxCommand *cmd; { - char **msg; + const char * const *msg; W3DclientRec *crec = (W3DclientRec *) w->w_clientData; if (cmd->tx_argc == 1) diff --git a/tcltk/tclmagic.c b/tcltk/tclmagic.c index 4408fc16..57de6176 100644 --- a/tcltk/tclmagic.c +++ b/tcltk/tclmagic.c @@ -512,7 +512,7 @@ _magic_initialize(ClientData clientData, int n, i; char keyword[100]; char *kwptr = keyword + 7; - char **commandTable; + const char * const *commandTable; int result; /* Is magic being executed in a slave interpreter? */ diff --git a/textio/txMain.c b/textio/txMain.c index c52d9cdb..d2cb5c7a 100644 --- a/textio/txMain.c +++ b/textio/txMain.c @@ -104,7 +104,7 @@ void TxInitReadline() { int i, j; - char **commandTable; + const char * const *commandTable; char nobell[] = "set bell-style none"; rl_getc_function = TxGetChar; diff --git a/windows/windInt.h b/windows/windInt.h index 88494867..0070089e 100644 --- a/windows/windInt.h +++ b/windows/windInt.h @@ -36,7 +36,7 @@ typedef struct WIND_S3 { bool (*w_exit)(); void (*w_reposition)(); /* called when a window moves or changes size */ GrGlyph *w_icon; - char **w_commandTable; + const char * const *w_commandTable; void (**w_functionTable)(); struct WIND_S3 *w_nextClient; } clientRec; diff --git a/windows/windMain.c b/windows/windMain.c index bb03bf31..f24c15bf 100644 --- a/windows/windMain.c +++ b/windows/windMain.c @@ -260,8 +260,9 @@ WindAddClient(clientName, create, delete, redisplay, command, update, /* Commands and functions should be registered with the client */ /* using the WindAddCommand() function. */ - res->w_commandTable = (char **)mallocMagic(sizeof(char *)); - *(res->w_commandTable) = NULL; + const char **newtable = (const char **)mallocMagic(sizeof(char *)); + newtable[0] = NULL; + res->w_commandTable = newtable; res->w_functionTable = (void (**)())mallocMagic(sizeof(void (*)())); *(res->w_functionTable) = NULL; @@ -406,7 +407,7 @@ WindExecute(w, rc, cmd) { int cmdNum; clientRec *client = (clientRec *) rc; - char **commandTable = client->w_commandTable; + const char * const *commandTable = client->w_commandTable; void (**functionTable)() = client->w_functionTable; if (cmd->tx_argc > 0) @@ -452,9 +453,9 @@ WindAddCommand(rc, text, func, dynamic) { int cidx, numCommands = 0; clientRec *client = (clientRec *) rc; - char **commandTable = client->w_commandTable; + const char * const *commandTable = client->w_commandTable; void (**functionTable)() = client->w_functionTable; - char **newcmdTable; + const char **newcmdTable; void (**newfnTable)(); /* Find the number of commands and functions, increment by one, and */ @@ -463,7 +464,7 @@ WindAddCommand(rc, text, func, dynamic) while (commandTable[numCommands] != NULL) numCommands++; numCommands++; - newcmdTable = (char **)mallocMagic((numCommands + 1) * sizeof(char *)); + newcmdTable = (const char **)mallocMagic((numCommands + 1) * sizeof(char *)); newfnTable = (void (**)())mallocMagic((numCommands + 1) * sizeof(void (*)())); /* Copy the old values, inserting the new command in alphabetical */ @@ -493,7 +494,7 @@ WindAddCommand(rc, text, func, dynamic) /* Release memory for the original pointers, and replace the */ /* pointers in the client record. */ - freeMagic(commandTable); + freeMagic((void*)commandTable); freeMagic(functionTable); client->w_commandTable = newcmdTable; @@ -534,7 +535,7 @@ WindReplaceCommand(rc, command, newfunc) { int cidx, clen; clientRec *client = (clientRec *) rc; - char **commandTable = client->w_commandTable; + const char * const *commandTable = client->w_commandTable; void (**functionTable)() = client->w_functionTable; clen = strlen(command); @@ -569,7 +570,7 @@ WindReplaceCommand(rc, command, newfunc) * ---------------------------------------------------------------------------- */ -char ** +const char * const * WindGetCommandTable(rc) WindClient rc; { diff --git a/windows/windSend.c b/windows/windSend.c index 0954aa31..6bb4470f 100644 --- a/windows/windSend.c +++ b/windows/windSend.c @@ -265,7 +265,7 @@ WindSendCommand(w, cmd, quiet) (*(windClient->w_command))(w, cmd); else if ((windCmdNum >= 0) && (clientCmdNum >= 0)) { - char *(ownTable[3]); + const char *(ownTable[3]); int ownCmdNum; ownTable[0] = rc->w_commandTable[clientCmdNum]; diff --git a/windows/windows.h b/windows/windows.h index 161b7951..209fcb57 100644 --- a/windows/windows.h +++ b/windows/windows.h @@ -250,7 +250,7 @@ extern void windFixSurfaceArea(); extern int WindExecute(); extern void WindAddCommand(); extern int WindReplaceCommand(); -extern char **WindGetCommandTable(); +extern const char * const *WindGetCommandTable(); extern int windCheckOnlyWindow(MagWindow **, WindClient);