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 6121 by maya, Fri Nov 13 08:28:29 2015 UTC revision 6126 by yutakapon, Fri Nov 13 14:36:37 2015 UTC
# Line 203  void WriteFont(PCHAR Sect, PCHAR Key, PC Line 203  void WriteFont(PCHAR Sect, PCHAR Key, PC
203    
204    
205  #define CYGTERM_FILE "cygterm.cfg"  // CygTerm configuration file  #define CYGTERM_FILE "cygterm.cfg"  // CygTerm configuration file
206    #define CYGTERM_FILE_MAXLINE 100
207    
208  static void ReadCygtermConfFile(PTTSet ts)  static void ReadCygtermConfFile(PTTSet ts)
209  {  {
# Line 309  static void WriteCygtermConfFile(PTTSet Line 310  static void WriteCygtermConfFile(PTTSet
310          char buf[256], *head, *body;          char buf[256], *head, *body;
311          char uimsg[MAX_UIMSG];          char uimsg[MAX_UIMSG];
312          cygterm_t settings;          cygterm_t settings;
313            char *line[CYGTERM_FILE_MAXLINE];
314            int i, linenum, len;
315    
316          // Cygwin設定が変更されていない場合は、ファイルを書き込まない。          // Cygwin設定が変更されていない場合は、ファイルを書き込まない。
317          if (ts->CygtermSettings.update_flag == FALSE)          if (ts->CygtermSettings.update_flag == FALSE)
# Line 326  static void WriteCygtermConfFile(PTTSet Line 329  static void WriteCygtermConfFile(PTTSet
329          AppendSlash(tmp, sizeof(tmp));          AppendSlash(tmp, sizeof(tmp));
330          strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);          strncat_s(tmp, sizeof(tmp), tmpfile, _TRUNCATE);
331    
332            // cygterm.cfg が存在すれば、いったんメモリにすべて読み込む。
333            memset(line, 0, sizeof(line));
334            linenum = 0;
335          fp = fopen(cfg, "r");          fp = fopen(cfg, "r");
336          tmp_fp = fopen(tmp, "w");          if (fp) {
337                    i = 0;
338                    while (fgets(buf, sizeof(buf), fp) != NULL) {
339                            len = strlen(buf);
340                            if (buf[len - 1] == '\n')
341                                    buf[len - 1] = '\0';
342                            if (i < CYGTERM_FILE_MAXLINE)
343                                    line[i++] = strdup(buf);
344                            else
345                                    break;
346                    }
347                    linenum = i;
348                    fclose(fp);
349            }
350    
351            tmp_fp = fopen(cfg, "w");
352          if (tmp_fp == NULL) {          if (tmp_fp == NULL) {
353                  get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts->UILanguageFile);                  get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts->UILanguageFile);
354                  get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts->UIMsg, sizeof(ts->UIMsg),                  get_lang_msg("MSG_CYGTERM_CONF_WRITEFILE_ERROR", ts->UIMsg, sizeof(ts->UIMsg),
# Line 336  static void WriteCygtermConfFile(PTTSet Line 357  static void WriteCygtermConfFile(PTTSet
357                  MessageBox(NULL, buf, uimsg, MB_ICONEXCLAMATION);                  MessageBox(NULL, buf, uimsg, MB_ICONEXCLAMATION);
358          }          }
359          else {          else {
360                  if (fp != NULL) {                  if (linenum > 0) {
361                          while (fgets(buf, sizeof(buf), fp) != NULL) {                          for (i = 0; i < linenum; i++) {
362                                  int len = strlen(buf);                                  split_buffer(line[i], '=', &head, &body);
   
                                 if (buf[len - 1] == '\n')  
                                         buf[len - 1] = '\0';  
   
                                 split_buffer(buf, '=', &head, &body);  
363                                  if (head == NULL || body == NULL) {                                  if (head == NULL || body == NULL) {
364                                          fprintf(tmp_fp, "%s\n", buf);                                          fprintf(tmp_fp, "%s\n", line[i]);
365                                  }                                  }
366                                  else if (_stricmp(head, "TERM") == 0) {                                  else if (_stricmp(head, "TERM") == 0) {
367                                          fprintf(tmp_fp, "TERM = %s\n", settings.term);                                          fprintf(tmp_fp, "TERM = %s\n", settings.term);
# Line 391  static void WriteCygtermConfFile(PTTSet Line 407  static void WriteCygtermConfFile(PTTSet
407                                          fprintf(tmp_fp, "%s = %s\n", head, body);                                          fprintf(tmp_fp, "%s = %s\n", head, body);
408                                  }                                  }
409                          }                          }
                         fclose(fp);  
410                  }                  }
411                  else {                  else {
412                          fputs("# CygTerm setting\n", tmp_fp);                          fputs("# CygTerm setting\n", tmp_fp);
# Line 429  static void WriteCygtermConfFile(PTTSet Line 444  static void WriteCygtermConfFile(PTTSet
444                  }                  }
445                  fclose(tmp_fp);                  fclose(tmp_fp);
446    
447                    // ダイレクトにファイルに書き込むようにしたので、下記処理は不要。
448    #if 0
449                  if (remove(cfg) != 0 && errno != ENOENT) {                  if (remove(cfg) != 0 && errno != ENOENT) {
450                          get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts->UILanguageFile);                          get_lang_msg("MSG_ERROR", uimsg, sizeof(uimsg), "ERROR", ts->UILanguageFile);
451                          get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts->UIMsg, sizeof(ts->UIMsg),                          get_lang_msg("MSG_CYGTERM_CONF_REMOVEFILE_ERROR", ts->UIMsg, sizeof(ts->UIMsg),
# Line 450  static void WriteCygtermConfFile(PTTSet Line 467  static void WriteCygtermConfFile(PTTSet
467                          // Save setup 実行時に、CygTermの設定を保存するようにしたことにより、                          // Save setup 実行時に、CygTermの設定を保存するようにしたことにより、
468                          // ダイアログ表示が不要となるため、削除する。                          // ダイアログ表示が不要となるため、削除する。
469                          // (2015.11.12 yutaka)                          // (2015.11.12 yutaka)
 #if 0  
470                          get_lang_msg("MSG_TT_NOTICE", uimsg, sizeof(uimsg), "MSG_TT_NOTICE", ts->UILanguageFile);                          get_lang_msg("MSG_TT_NOTICE", uimsg, sizeof(uimsg), "MSG_TT_NOTICE", ts->UILanguageFile);
471                          get_lang_msg("MSG_CYGTERM_CONF_SAVED_NOTICE", ts->UIMsg, sizeof(ts->UIMsg),                          get_lang_msg("MSG_CYGTERM_CONF_SAVED_NOTICE", ts->UIMsg, sizeof(ts->UIMsg),
472                                  "%s has been saved. Do not do save setup.", ts->UILanguageFile);                                  "%s has been saved. Do not do save setup.", ts->UILanguageFile);
473                          _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts->UIMsg, CYGTERM_FILE);                          _snprintf_s(buf, sizeof(buf), _TRUNCATE, ts->UIMsg, CYGTERM_FILE);
474                          MessageBox(NULL, buf, uimsg, MB_OK | MB_ICONINFORMATION);                          MessageBox(NULL, buf, uimsg, MB_OK | MB_ICONINFORMATION);
 #endif  
475                  }                  }
476    #endif
477            }
478    
479            // 忘れずにメモリフリーしておく。
480            for (i = 0; i < linenum; i++) {
481                    free(line[i]);
482          }          }
483    
484  }  }
485    
486  void FAR PASCAL ReadIniFile(PCHAR FName, PTTSet ts)  void FAR PASCAL ReadIniFile(PCHAR FName, PTTSet ts)

Legend:
Removed from v.6121  
changed lines
  Added in v.6126

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