SET.C
上传用户:dcs7469208
上传日期:2010-01-02
资源大小:443k
文件大小:3k
- /****************************************************************/
- /* */
- /* set.c */
- /* */
- /* command.com set command */
- /* */
- /* Copyright (c) 1995 */
- /* Pasquale J. Villani */
- /* All Rights Reserved */
- /* */
- /* This file is part of DOS-C. */
- /* */
- /* DOS-C is free software; you can redistribute it and/or */
- /* modify it under the terms of the GNU General Public License */
- /* as published by the Free Software Foundation; either version */
- /* 2, or (at your option) any later version. */
- /* */
- /* DOS-C is distributed in the hope that it will be useful, but */
- /* WITHOUT ANY WARRANTY; without even the implied warranty of */
- /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See */
- /* the GNU General Public License for more details. */
- /* */
- /* You should have received a copy of the GNU General Public */
- /* License along with DOS-C; see the file COPYING. If not, */
- /* write to the Free Software Foundation, 675 Mass Ave, */
- /* Cambridge, MA 02139, USA. */
- /****************************************************************/
- /* $Logfile: C:/dos-c/src/command/set.c_v $ */
- /* $Log: C:/dos-c/src/command/set.c_v $
- *
- * Rev 1.3 31 Jan 1998 8:12:28 patv
- * Put preprocessor switch for version strings and changed log strings
- *
- * Rev 1.2 29 Aug 1996 13:06:56 patv
- * Bug fixes for v0.91b
- *
- * Rev 1.1 01 Sep 1995 18:04:44 patv
- * First GPL release.
- *
- * Rev 1.0 02 Jul 1995 10:02:20 patv
- * Initial revision.
- */
- /* $EndLog$ */
- #ifdef VERSION_STRINGS
- static char *RcsId = "$Header: C:/dos-c/src/command/set.c_v 1.3 31 Jan 1998 8:12:28 patv $";
- #endif
- #include "../../hdr/portab.h"
- #include "globals.h"
- #include "proto.h"
- extern BYTE *dflt_pr_string;
- BOOL set_bat()
- {
- BYTE env_var[MAX_CMDLINE];
- BYTE *lp, *p;
- lp = skipwh(tail);
- if(*lp == ' ')
- {
- EnvDump();
- printf("n");
- return TRUE;
- }
- lp = scanspl(tail, env_var, '=');
- if(!lp && *lp != '=')
- {
- error_message(INV_SYNTAX);
- return FALSE;
- }
- else
- ++lp;
- if(*lp == 'r' || *lp == 'n')
- {
- /* set env_var in environment to empty */
- EnvClearVar(env_var);
- /* Update system PROMPT immediately */
- if(strcmp(env_var,"PROMPT") == 0)
- scopy(dflt_pr_string, prompt_string);
- }
- else
- {
- /* Trim trailing newline */
- for(p = lp; (*p != 'r') && (*p != 'n'); p++)
- ;
- *p = ' ';
- EnvSetVar(env_var, lp);
- /* Update system PROMPT immediately */
- if(strcmp(env_var,"PROMPT") == 0)
- scopy(lp, prompt_string);
- /* Update system PATH immediately */
- if(strcmp(env_var,"PATH") == 0)
- scopy(lp, path);
- }
- return TRUE;
- }