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 6473 by doda, Mon Aug 22 08:34:04 2016 UTC revision 6508 by yutakapon, Thu Oct 20 12:51:47 2016 UTC
# Line 190  static void normalize_generic_order(char Line 190  static void normalize_generic_order(char
190    
191          memset(listed, 0, sizeof(listed));          memset(listed, 0, sizeof(listed));
192          memset(allowed, 0, sizeof(allowed));          memset(allowed, 0, sizeof(allowed));
193    
194            // 許可されている文字のリストを作る。
195          for (i = 0; i < default_strings_len ; i++) {          for (i = 0; i < default_strings_len ; i++) {
196                  allowed[default_strings[i]] = 1;                  allowed[default_strings[i]] = 1;
197          }          }
198    
199            // 指定された文字列を走査し、許可されていない文字、重複する文字は削除する。
200            //
201            // ex. (i=5 の文字を削除する)
202            // i=012345
203            //   >:=9<87;A@?B3026(\0)
204            //         i+1
205            //         <------------>
206            //       ↓
207            //   >:=9<7;A@?B3026(\0)
208            //        
209          for (i = 0; buf[i] != 0; i++) {          for (i = 0; buf[i] != 0; i++) {
210                  int num = buf[i] - '0';                  int num = buf[i] - '0';
211    
# Line 206  static void normalize_generic_order(char Line 218  static void normalize_generic_order(char
218                          listed[num] = 1;                          listed[num] = 1;
219                  }                  }
220    
221                    // disabled lineがあれば、位置を覚えておく。
222                  if (num == 0) {                  if (num == 0) {
223                          k = i;                          k = i;
224                  }                  }
225          }          }
226    
227  #if 1  #if 1
228            // 指定されていない文字があれば、disabled lineの直前に挿入する。
229            //
230            // ex. (Zを挿入する)
231            //                k
232            //   >:=9<87;A@?B3026(\0)
233            //                 k+1
234            //                 <---->
235            //       ↓       k
236            //   >:=9<87;A@?B30026(\0)
237            //       ↓        k
238            //   >:=9<87;A@?B3Z026(\0)
239            //      
240          for (j = 0; j < default_strings_len && default_strings[j] != 0; j++) {          for (j = 0; j < default_strings_len && default_strings[j] != 0; j++) {
241                  int num = default_strings[j];                  int num = default_strings[j];
242    
243                  if (!listed[num] && k >= 0) {                  if (!listed[num] && k >= 0) {
244                          memmove(buf + k + 1, buf + k, strlen(buf + k + 1) + 1);                          int copylen = strlen(buf + k + 1) + 1;
245    
246                            memmove(buf + k + 1, buf + k, copylen);
247                            buf[k + 1 + copylen] = '\0';   // 終端を忘れずに付ける。
248                          buf[k] = num + '0';                          buf[k] = num + '0';
249                          k++;                          k++;
250                          i++;                          i++;
# Line 228  static void normalize_generic_order(char Line 256  static void normalize_generic_order(char
256          else {          else {
257                  j++;                  j++;
258          }          }
259    
260            // disabled lineが存在しない場合は、そのまま末尾に追加する。
261          for (; j < default_strings_len ; j++) {          for (; j < default_strings_len ; j++) {
262                  int num = default_strings[j];                  int num = default_strings[j];
263    

Legend:
Removed from v.6473  
changed lines
  Added in v.6508

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