Procházet zdrojové kódy

added the help command variable to the instance structure to get independant commands for each instance fix #42

prozessorkern před 4 roky
rodič
revize
5a00f22e31
2 změnil soubory, kde provedl 6 přidání a 2 odebrání
  1. 1 0
      api/shellmatta.h
  2. 5 2
      src/shellmatta.c

+ 1 - 0
api/shellmatta.h

@@ -140,6 +140,7 @@ typedef struct
     const char          *prompt;            /**< prompt is printed after every command  */
     shellmatta_mode_t   mode;               /**< mode of the shell                      */
     shellmatta_write_t  write;              /**< pointer to write function              */
+    shellmatta_cmd_t    helpCmd;            /**< help command structure                 */
     shellmatta_cmd_t    *cmdList;           /**< pointer to the first command           */
     bool                cmdListIsConst;     /**< true if the #cmdList was passed during
                                                  initialization                         */

+ 5 - 2
src/shellmatta.c

@@ -93,12 +93,15 @@ shellmatta_retCode_t shellmatta_doInit(
         inst->hereDelimiterIdx      = 0u;
         inst->hereLength            = 0u;
         inst->mode                  = SHELLMATTA_MODE_INSERT;
-        inst->cmdList               = &helpCmd;
+        inst->cmdList               = &(inst->helpCmd);
         inst->cmdListIsConst        = false;
 
+        /*! -# copy the help command structure to this instance */
+        memcpy(&(inst->helpCmd), &helpCmd, sizeof(shellmatta_cmd_t));
+
         if(NULL != cmdList)
         {
-            helpCmd.next = (shellmatta_cmd_t *) cmdList;
+            inst->helpCmd.next = (shellmatta_cmd_t *) cmdList;
             inst->cmdListIsConst = true;
         }