Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

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

revision 3176 by maya, Sun Nov 30 16:14:41 2008 UTC revision 3178 by doda, Tue Dec 2 00:53:28 2008 UTC
# Line 1505  static int parse_option(PTInstVar pvar, Line 1505  static int parse_option(PTInstVar pvar,
1505                                  MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION);                                  MessageBox(NULL, buf, "TTSSH", MB_OK | MB_ICONEXCLAMATION);
1506                          }                          }
1507    
1508                          return 1;                          return OPTION_CLEAR;
1509    
1510                  // ttermpro.exe の /T= 指定の流用なので、大文字も許す (2006.10.19 maya)                  // ttermpro.exe の /T= 指定の流用なので、大文字も許す (2006.10.19 maya)
1511                  } else if (MATCH_STR_I(option + 1, "t=") == 0) {                  } else if (MATCH_STR_I(option + 1, "t=") == 0) {
1512                          if (strcmp(option + 3, "2") == 0) {                          if (strcmp(option + 3, "2") == 0) {
1513                                  pvar->settings.Enabled = 1;                                  pvar->settings.Enabled = 1;
1514                                  return 1;                                  return OPTION_CLEAR;
1515                          } else {                          } else {
1516                                  pvar->settings.Enabled = 0;                                  pvar->settings.Enabled = 0;
1517                          }                          }
# Line 1600  static int parse_option(PTInstVar pvar, Line 1600  static int parse_option(PTInstVar pvar,
1600                  }                  }
1601    
1602          }          }
1603            else if ((MATCH_STR_I(option, "ssh://") == 0) ||
1604                     (MATCH_STR_I(option, "ssh1://") == 0) ||
1605                     (MATCH_STR_I(option, "ssh2://") == 0) ||
1606                     (MATCH_STR_I(option, "slogin://") == 0) ||
1607                     (MATCH_STR_I(option, "slogin1://") == 0) ||
1608                     (MATCH_STR_I(option, "slogin2://") == 0)) {
1609    
1610          return 0;                  char *p, *p2, *p3;
1611                    int optlen;
1612    
1613                    p = strchr(option, ':');
1614                    optlen = strlen(option);
1615    
1616                    switch (*(p-1)) {
1617                    case '1':
1618                            pvar->settings.ssh_protocol_version = 1;
1619                            break;
1620                    case '2':
1621                            pvar->settings.ssh_protocol_version = 2;
1622                            break;
1623                    }
1624    
1625                    p += 3;
1626                    memset(option, ' ', p - option);
1627    
1628                    if ((p2 = strchr(p, '/')) != NULL) {
1629                            memset(p2, ' ', strlen(option) - (p2 - option));
1630                    }
1631    
1632                    if ((p2 = strchr(p, '@')) != NULL) {
1633                            *p2 = 0;
1634                            if ((p3 = strchr(p, ':')) != NULL) {
1635                                    *p3 = 0;
1636                                    strcpy_s(pvar->ssh2_password, sizeof(pvar->ssh2_password), p3 + 1);
1637                                    pvar->ssh2_autologin = 1;
1638                            }
1639                            strcpy_s(pvar->ssh2_username, sizeof(pvar->ssh2_username), p);
1640                            memset(p, ' ', (p2 - p) + 1);
1641                    }
1642    
1643                    pvar->settings.Enabled = 1;
1644    
1645                    return OPTION_REPLACE;
1646            }
1647    
1648            return OPTION_NONE;
1649  }  }
1650    
1651  static void FAR PASCAL TTXParseParam(PCHAR param, PTTSet ts,  static void FAR PASCAL TTXParseParam(PCHAR param, PTTSet ts,
1652                                       PCHAR DDETopic)                                       PCHAR DDETopic)
1653  {  {
1654          // スペースを含むファイル名を認識するように修正 (2006.10.7 maya)          // スペースを含むファイル名を認識するように修正 (2006.10.7 maya)
1655          int i;          int i, buflen;
1656          BOOL inParam = FALSE;          BOOL inParam = FALSE;
1657          BOOL inQuotes = FALSE;          BOOL inQuotes = FALSE;
1658          BOOL inFileParam = FALSE;          BOOL inFileParam = FALSE;
# Line 1635  static void FAR PASCAL TTXParseParam(PCH Line 1679  static void FAR PASCAL TTXParseParam(PCH
1679                                          strncat_s(buf, buf_len, option, _TRUNCATE);                                          strncat_s(buf, buf_len, option, _TRUNCATE);
1680                                          option[Equal - option + 1] = c;                                          option[Equal - option + 1] = c;
1681                                          strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);                                          strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);
1682                                          if (parse_option(pvar, *buf == '"' ? buf + 1 : buf)) {                                          switch (parse_option(pvar, *buf == '"' ? buf + 1 : buf)) {
1683                                              case OPTION_CLEAR:
1684                                                  memset(option, ' ', i + 1 - (option - param));                                                  memset(option, ' ', i + 1 - (option - param));
1685                                          } else {                                                  break;
1686                                              case OPTION_REPLACE:
1687                                                    buflen = strlen(buf);
1688                                                    memcpy(option, buf, buflen);
1689                                                    memset(option + buflen, ' ', i + 1 - buflen - (option - param));
1690                                                    break;
1691                                              default:
1692                                                  param[i] = ch;                                                  param[i] = ch;
1693                                          }                                          }
1694                                          free(buf);                                          free(buf);
1695                                  }                                  }
1696                                  else {                                  else {
1697                                          if (parse_option(pvar, *option == '"' ? option + 1 : option)) {                                          switch (parse_option(pvar, *option == '"' ? option + 1 : option)) {
1698                                              case OPTION_CLEAR:
1699                                                  memset(option, ' ', i + 1 - (option - param));                                                  memset(option, ' ', i + 1 - (option - param));
1700                                          } else {                                                  break;
1701                                              default:
1702                                                  param[i] = ch;                                                  param[i] = ch;
1703                                          }                                          }
1704                                  }                                  }
# Line 1690  static void FAR PASCAL TTXParseParam(PCH Line 1743  static void FAR PASCAL TTXParseParam(PCH
1743                          strncat_s(buf, buf_len, option, _TRUNCATE);                          strncat_s(buf, buf_len, option, _TRUNCATE);
1744                          option[Equal - option + 1] = c;                          option[Equal - option + 1] = c;
1745                          strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);                          strncat_s(buf, buf_len, Equal + 2, _TRUNCATE);
1746                          if (parse_option(pvar, *buf == '"' ? buf + 1 : buf)) {                          switch (parse_option(pvar, *buf == '"' ? buf + 1 : buf)) {
1747                              case OPTION_CLEAR:
1748                                  memset(option, ' ', i + 1 - (option - param));                                  memset(option, ' ', i + 1 - (option - param));
1749                                    break;
1750                              case OPTION_REPLACE:
1751                                    strcpy_s(option, i - (param - option), buf);
1752                                    break;
1753                          }                          }
1754                          free(buf);                          free(buf);
1755                  }                  }
1756                  else {                  else {
1757                          if (parse_option(pvar, option)) {                          switch (parse_option(pvar, option)) {
1758                              case OPTION_CLEAR:
1759                                  memset(option, ' ', i - (option - param));                                  memset(option, ' ', i - (option - param));
1760                                    break;
1761                          }                          }
1762                  }                  }
1763          }          }

Legend:
Removed from v.3176  
changed lines
  Added in v.3178

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