Develop and Download Open Source Software

Browse Subversion Repository

Diff of /trunk/teraterm/ttpset/ttset.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 5700 by doda, Mon Nov 17 06:29:15 2014 UTC revision 5876 by maya, Sat May 16 16:47:54 2015 UTC
# Line 3156  BOOL NextParam(PCHAR Param, int *i, PCHA Line 3156  BOOL NextParam(PCHAR Param, int *i, PCHA
3156          char c;          char c;
3157          BOOL Quoted;          BOOL Quoted;
3158    
3159          if ((unsigned int) (*i) >= strlen(Param))          if ((unsigned int) (*i) >= strlen(Param)) {
3160                  return FALSE;                  return FALSE;
3161            }
3162          j = 0;          j = 0;
3163    
3164          while (Param[*i] == ' ' || Param[*i] == '\t')          while (Param[*i] == ' ' || Param[*i] == '\t') {
3165                  (*i)++;                  (*i)++;
3166            }
3167    
3168          Quoted = FALSE;          Quoted = FALSE;
3169          c = Param[*i];          c = Param[*i];
# Line 3175  BOOL NextParam(PCHAR Param, int *i, PCHA Line 3177  BOOL NextParam(PCHAR Param, int *i, PCHA
3177                  c = Param[*i];                  c = Param[*i];
3178                  (*i)++;                  (*i)++;
3179          }          }
3180          if (!Quoted && (c == ';'))          if (!Quoted && (c == ';')) {
3181                  (*i)--;                  (*i)--;
3182            }
3183    
3184          Temp[j] = 0;          Temp[j] = 0;
3185          return (strlen(Temp) > 0);          return (strlen(Temp) > 0);
3186  }  }
3187    
 void Dequote(PCHAR Source, PCHAR Dest)  
 {  
         int i, j;  
         char q, c;  
   
         Dest[0] = 0;  
         if (Source[0] == 0)  
                 return;  
         i = 0;  
         /* quoting char */  
         q = Source[i];  
         /* only '"' is used as quoting char */  
         if (q == '"')  
                 i++;  
   
         c = Source[i];  
         i++;  
         j = 0;  
         while ((c != 0)) {  
                 if (c != '"') {  
                         Dest[j] = c;  
                         j++;  
                 }  
                 else {  
                         if (q == '"' && Source[i] == '"') {  
                                 Dest[j] = c;  
                                 j++;  
                                 i++;  
                         }  
                         else if (q == '"' && Source[i] == '\0') {  
                                 break;  
                         }  
                         else {  
                                 Dest[j] = c;  
                                 j++;  
                         }  
                 }  
                 c = Source[i];  
                 i++;  
         }  
   
         Dest[j] = 0;  
 }  
   
   
3188  #ifndef NO_INET6  #ifndef NO_INET6
3189  static void ParseHostName(char *HostStr, WORD * port)  static void ParseHostName(char *HostStr, WORD * port)
3190  {  {
# Line 3353  void FAR PASCAL ParseParam(PCHAR Param, Line 3311  void FAR PASCAL ParseParam(PCHAR Param,
3311    
3312          while (NextParam(Param, &i, Temp, sizeof(Temp))) {          while (NextParam(Param, &i, Temp, sizeof(Temp))) {
3313                  if (_strnicmp(Temp, "/F=", 3) == 0) {   /* setup filename */                  if (_strnicmp(Temp, "/F=", 3) == 0) {   /* setup filename */
3314                          Dequote(&Temp[3], Temp2);                          DequoteParam(Temp2, sizeof(Temp2), &Temp[3]);
3315                          if (strlen(Temp2) > 0) {                          if (strlen(Temp2) > 0) {
3316                                  ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".INI", Temp,                                  ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".INI", Temp,
3317                                            sizeof(Temp));                                            sizeof(Temp));
# Line 3414  void FAR PASCAL ParseParam(PCHAR Param, Line 3372  void FAR PASCAL ParseParam(PCHAR Param,
3372                          ts->HostDialogOnStartup = TRUE;                          ts->HostDialogOnStartup = TRUE;
3373                  }                  }
3374                  else if (_strnicmp(Temp, "/FD=", 4) == 0) {     /* file transfer directory */                  else if (_strnicmp(Temp, "/FD=", 4) == 0) {     /* file transfer directory */
3375                          Dequote(&Temp[4], Temp2);                          DequoteParam(Temp2, sizeof(Temp2), &Temp[4]);
3376                          if (strlen(Temp2) > 0) {                          if (strlen(Temp2) > 0) {
3377                                  _getcwd(TempDir, sizeof(TempDir));                                  _getcwd(TempDir, sizeof(TempDir));
3378                                  if (_chdir(Temp2) == 0)                                  if (_chdir(Temp2) == 0)
# Line 3428  void FAR PASCAL ParseParam(PCHAR Param, Line 3386  void FAR PASCAL ParseParam(PCHAR Param,
3386                  else if (_stricmp(Temp, "/I") == 0)     /* iconize */                  else if (_stricmp(Temp, "/I") == 0)     /* iconize */
3387                          ts->Minimize = 1;                          ts->Minimize = 1;
3388                  else if (_strnicmp(Temp, "/K=", 3) == 0) {      /* Keyboard setup file */                  else if (_strnicmp(Temp, "/K=", 3) == 0) {      /* Keyboard setup file */
3389                          Dequote(&Temp[3], Temp2);                          DequoteParam(Temp2, sizeof(Temp2), &Temp[3]);
3390                          ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".CNF",                          ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".CNF",
3391                                    ts->KeyCnfFN, sizeof(ts->KeyCnfFN));                                    ts->KeyCnfFN, sizeof(ts->KeyCnfFN));
3392                  }                  }
# Line 3457  void FAR PASCAL ParseParam(PCHAR Param, Line 3415  void FAR PASCAL ParseParam(PCHAR Param,
3415                          }                          }
3416                  }                  }
3417                  else if (_strnicmp(Temp, "/L=", 3) == 0) {      /* log file */                  else if (_strnicmp(Temp, "/L=", 3) == 0) {      /* log file */
3418                          Dequote(&Temp[3], Temp2);                          DequoteParam(Temp2, sizeof(Temp2), &Temp[3]);
3419                          strncpy_s(ts->LogFN, sizeof(ts->LogFN), Temp2, _TRUNCATE);                          strncpy_s(ts->LogFN, sizeof(ts->LogFN), Temp2, _TRUNCATE);
3420                  }                  }
3421                  else if (_strnicmp(Temp, "/LA=", 4) == 0) {     /* language */                  else if (_strnicmp(Temp, "/LA=", 4) == 0) {     /* language */
# Line 3480  void FAR PASCAL ParseParam(PCHAR Param, Line 3438  void FAR PASCAL ParseParam(PCHAR Param,
3438                          }                          }
3439                  }                  }
3440                  else if (_strnicmp(Temp, "/MN=", 4) == 0) {     /* multicastname */                  else if (_strnicmp(Temp, "/MN=", 4) == 0) {     /* multicastname */
3441                          Dequote(&Temp[4], ts->MulticastName);                          DequoteParam(ts->MulticastName, sizeof(ts->MulticastName), &Temp[4]);
3442                  }                  }
3443                  else if (_strnicmp(Temp, "/M=", 3) == 0) {      /* macro filename */                  else if (_strnicmp(Temp, "/M=", 3) == 0) {      /* macro filename */
3444                          if ((Temp[3] == 0) || (Temp[3] == '*'))                          if ((Temp[3] == 0) || (Temp[3] == '*'))
3445                                  strncpy_s(ts->MacroFN, sizeof(ts->MacroFN), "*",                                  strncpy_s(ts->MacroFN, sizeof(ts->MacroFN), "*",
3446                                            _TRUNCATE);                                            _TRUNCATE);
3447                          else {                          else {
3448                                  Dequote(&Temp[3], Temp2);                                  DequoteParam(Temp2, sizeof(Temp2), &Temp[3]);
3449                                  ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".TTL",                                  ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), ".TTL",
3450                                            ts->MacroFN, sizeof(ts->MacroFN));                                            ts->MacroFN, sizeof(ts->MacroFN));
3451                          }                          }
# Line 3509  void FAR PASCAL ParseParam(PCHAR Param, Line 3467  void FAR PASCAL ParseParam(PCHAR Param,
3467                                  ParamTCP = 65535;                                  ParamTCP = 65535;
3468                  }                  }
3469                  else if (_strnicmp(Temp, "/R=", 3) == 0) {      /* Replay filename */                  else if (_strnicmp(Temp, "/R=", 3) == 0) {      /* Replay filename */
3470                          Dequote(&Temp[3], Temp2);                          DequoteParam(Temp2, sizeof(Temp2), &Temp[3]);
3471                          ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), "", ts->HostName,                          ConvFName(ts->HomeDir, Temp2, sizeof(Temp2), "", ts->HostName,
3472                                    sizeof(ts->HostName));                                    sizeof(ts->HostName));
3473                          if (strlen(ts->HostName) > 0)                          if (strlen(ts->HostName) > 0)
# Line 3533  void FAR PASCAL ParseParam(PCHAR Param, Line 3491  void FAR PASCAL ParseParam(PCHAR Param,
3491                          ts->HideWindow = 1;                          ts->HideWindow = 1;
3492                  }                  }
3493                  else if (_strnicmp(Temp, "/W=", 3) == 0) {      /* Window title */                  else if (_strnicmp(Temp, "/W=", 3) == 0) {      /* Window title */
3494                          Dequote(&Temp[3], ts->Title);                          DequoteParam(ts->Title, sizeof(ts->Title), &Temp[3]);
3495                  }                  }
3496                  else if (_strnicmp(Temp, "/X=", 3) == 0) {      /* Window pos (X) */                  else if (_strnicmp(Temp, "/X=", 3) == 0) {      /* Window pos (X) */
3497                          if (sscanf(&Temp[3], "%d", &pos) == 1) {                          if (sscanf(&Temp[3], "%d", &pos) == 1) {

Legend:
Removed from v.5700  
changed lines
  Added in v.5876

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26