|
以下代码在tools.c void LoadProfile (void)函数中.
- strcpy (strPath, (char *) getenv ("HOME"));
- strcat (strPath, "/.fcitx/profile");
- fp = fopen (strPath, "rt");
- if (fp) {
- for (;;) {
- if (!fgets (str, PATH_MAX, fp))
- break;
- i = strlen (str) - 1;
- while (str[i] == ' ' || str[i] == '\n')
- str[i--] = '\0';
- pstr = str;
- if (MyStrcmp (str, "版本=")) {
- pstr += 5;
- if (!strcasecmp (FCITX_VERSION, pstr))
- bRetVal = True;
- }
- else if (MyStrcmp (str, "主窗口位置X=")) {
- pstr += 12;
复制代码
一开始想到,getenv ()有时会返回NULL的吧,代码中没有检查.但想一想Home变量是一定存在的,好像不检查也可以. 这儿到底需要不需要检查一下getenv的返回值?
fp = fopen (strPath, "rt");这个地方,我觉得,如果打不开文件的话,是不是有个提示更好?如果用
if(fp),当fp==NULL时,不是都没提示? |
|