SET.C
上传用户:dcs7469208
上传日期:2010-01-02
资源大小:443k
文件大小:3k
源码类别:

操作系统开发

开发平台:

DOS

  1. /****************************************************************/
  2. /* */
  3. /*      set.c */
  4. /* */
  5. /*       command.com set command */
  6. /* */
  7. /* Copyright (c) 1995 */
  8. /* Pasquale J. Villani */
  9. /* All Rights Reserved */
  10. /* */
  11. /* This file is part of DOS-C. */
  12. /* */
  13. /* DOS-C is free software; you can redistribute it and/or */
  14. /* modify it under the terms of the GNU General Public License */
  15. /* as published by the Free Software Foundation; either version */
  16. /* 2, or (at your option) any later version. */
  17. /* */
  18. /* DOS-C is distributed in the hope that it will be useful, but */
  19. /* WITHOUT ANY WARRANTY; without even the implied warranty of */
  20. /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See */
  21. /* the GNU General Public License for more details. */
  22. /* */
  23. /* You should have received a copy of the GNU General Public */
  24. /* License along with DOS-C; see the file COPYING.  If not, */
  25. /* write to the Free Software Foundation, 675 Mass Ave, */
  26. /* Cambridge, MA 02139, USA. */
  27. /****************************************************************/
  28. /* $Logfile:   C:/dos-c/src/command/set.c_v  $ */
  29. /* $Log:   C:/dos-c/src/command/set.c_v  $ 
  30.  * 
  31.  *    Rev 1.3   31 Jan 1998  8:12:28   patv
  32.  * Put preprocessor switch for version strings and changed log strings
  33.  * 
  34.  *    Rev 1.2   29 Aug 1996 13:06:56   patv
  35.  * Bug fixes for v0.91b
  36.  * 
  37.  *    Rev 1.1   01 Sep 1995 18:04:44   patv
  38.  * First GPL release.
  39.  * 
  40.  *    Rev 1.0   02 Jul 1995 10:02:20   patv
  41.  * Initial revision.
  42.  */
  43. /* $EndLog$ */
  44. #ifdef VERSION_STRINGS
  45. static char *RcsId = "$Header:   C:/dos-c/src/command/set.c_v   1.3   31 Jan 1998  8:12:28   patv  $";
  46. #endif
  47. #include "../../hdr/portab.h"
  48. #include "globals.h"
  49. #include "proto.h"
  50. extern BYTE *dflt_pr_string;
  51. BOOL set_bat()
  52. {
  53. BYTE env_var[MAX_CMDLINE];
  54. BYTE *lp, *p;
  55. lp = skipwh(tail);
  56. if(*lp == '')
  57. {
  58. EnvDump();
  59. printf("n");
  60. return TRUE;
  61. }
  62. lp = scanspl(tail, env_var, '=');
  63. if(!lp && *lp != '=')
  64. {
  65. error_message(INV_SYNTAX);
  66. return FALSE;
  67. }
  68. else
  69. ++lp;
  70. if(*lp == 'r' || *lp == 'n')
  71. {
  72. /* set env_var in environment to empty */
  73. EnvClearVar(env_var);
  74. /* Update system PROMPT immediately */
  75. if(strcmp(env_var,"PROMPT") == 0)
  76. scopy(dflt_pr_string, prompt_string);
  77. }
  78. else
  79. {
  80. /* Trim trailing newline */
  81. for(p = lp; (*p != 'r') && (*p != 'n'); p++)
  82. ;
  83. *p = '';
  84. EnvSetVar(env_var, lp);
  85. /* Update system PROMPT immediately */
  86. if(strcmp(env_var,"PROMPT") == 0)
  87. scopy(lp, prompt_string);
  88. /* Update system PATH immediately */
  89. if(strcmp(env_var,"PATH") == 0)
  90. scopy(lp, path);
  91. }
  92. return TRUE;
  93. }