diff --git a/include/shell.h b/include/shell.h index ec609c25..fbc7c80b 100644 --- a/include/shell.h +++ b/include/shell.h @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: shell.h,v 1.15 2006-02-09 11:47:48 qbix79 Exp $ */ +/* $Id: shell.h,v 1.16 2006-05-25 15:08:40 qbix79 Exp $ */ #ifndef DOSBOX_SHELL_H #define DOSBOX_SHELL_H @@ -48,6 +48,7 @@ public: ~BatchFile(); bool ReadLine(char * line); bool Goto(char * where); + void Shift(void); Bit16u file_handle; bool echo; DOS_Shell * shell; @@ -104,6 +105,7 @@ public: void CMD_CHOICE(char * args); void CMD_ATTRIB(char * args); void CMD_PATH(char * args); + void CMD_SHIFT(char * /*args*/); /* The shell's variables */ Bit16u input_handle; BatchFile * bf; @@ -113,10 +115,10 @@ public: }; struct SHELL_Cmd { - const char * name; /* Command name*/ + const char * name; /* Command name*/ Bit32u flags; /* Flags about the command */ - void (DOS_Shell::*handler)(char * args); /* Handler for this command */ - const char * help; /* String with command help */ + void (DOS_Shell::*handler)(char * args); /* Handler for this command */ + const char * help; /* String with command help */ }; static inline void StripSpaces(char*&args) { diff --git a/src/shell/shell.cpp b/src/shell/shell.cpp index 855bacee..3d4f1f6f 100644 --- a/src/shell/shell.cpp +++ b/src/shell/shell.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: shell.cpp,v 1.73 2006-04-29 10:05:55 c2woody Exp $ */ +/* $Id: shell.cpp,v 1.74 2006-05-25 15:08:40 qbix79 Exp $ */ #include #include @@ -320,7 +320,7 @@ void DOS_Shell::Run(void) { if (echo) ShowPrompt(); InputCommand(input_line); ParseLine(input_line); - if (echo) WriteOut("\n"); + if (echo && !bf) WriteOut("\n"); } } while (!exit); } @@ -496,6 +496,7 @@ void SHELL_Init() { MSG_Add("SHELL_CMD_SET_HELP","Change environment variables.\n"); MSG_Add("SHELL_CMD_IF_HELP","Performs conditional processing in batch programs.\n"); MSG_Add("SHELL_CMD_GOTO_HELP","Jump to a labeled line in a batch script.\n"); + MSG_Add("SHELL_CMD_SHIFT_HELP","Leftshift commandline parameters in a batch script.\n"); MSG_Add("SHELL_CMD_TYPE_HELP","Display the contents of a text-file.\n"); MSG_Add("SHELL_CMD_REM_HELP","Add comments in a batch file.\n"); MSG_Add("SHELL_CMD_NO_WILD","This is a simple version of the command, no wildcards allowed!\n"); diff --git a/src/shell/shell_batch.cpp b/src/shell/shell_batch.cpp index 952dd348..b151a7ab 100644 --- a/src/shell/shell_batch.cpp +++ b/src/shell/shell_batch.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: shell_batch.cpp,v 1.20 2006-02-23 08:13:14 qbix79 Exp $ */ +/* $Id: shell_batch.cpp,v 1.21 2006-05-25 15:08:40 qbix79 Exp $ */ #include #include @@ -149,3 +149,6 @@ again: goto again; return false; }; +void BatchFile::Shift(void) { + cmd->Shift(1); +} diff --git a/src/shell/shell_cmds.cpp b/src/shell/shell_cmds.cpp index d84e815b..489101d7 100644 --- a/src/shell/shell_cmds.cpp +++ b/src/shell/shell_cmds.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: shell_cmds.cpp,v 1.66 2006-04-23 15:17:07 qbix79 Exp $ */ +/* $Id: shell_cmds.cpp,v 1.67 2006-05-25 15:08:40 qbix79 Exp $ */ #include #include @@ -46,6 +46,7 @@ static SHELL_Cmd cmd_list[]={ { "SET", 0, &DOS_Shell::CMD_SET, "SHELL_CMD_SET_HELP"}, { "IF", 0, &DOS_Shell::CMD_IF, "SHELL_CMD_IF_HELP"}, { "GOTO", 0, &DOS_Shell::CMD_GOTO, "SHELL_CMD_GOTO_HELP"}, +{ "SHIFT", 0, &DOS_Shell::CMD_SHIFT, "SHELL_CMD_SHIFT_HELP"}, { "TYPE", 0, &DOS_Shell::CMD_TYPE, "SHELL_CMD_TYPE_HELP"}, { "REM", 0, &DOS_Shell::CMD_REM, "SHELL_CMD_REM_HELP"}, { "RENAME", 0, &DOS_Shell::CMD_RENAME, "SHELL_CMD_RENAME_HELP"}, @@ -670,6 +671,9 @@ void DOS_Shell::CMD_GOTO(char * args) { } } +void DOS_Shell::CMD_SHIFT(char * /*args*/ ) { + if(bf) bf->Shift(); +} void DOS_Shell::CMD_TYPE(char * args) { StripSpaces(args);