--- lbbs/src/main.c 2025/11/16 02:06:56 1.75 +++ lbbs/src/main.c 2025/11/17 12:47:41 1.78 @@ -79,7 +79,8 @@ int main(int argc, char *argv[]) app_help(); return 0; case 'v': - puts(APP_INFO); + printf("%s\n", APP_INFO); + printf("%s\n", COPYRIGHT_INFO); return 0; default: arg_error(); @@ -101,7 +102,8 @@ int main(int argc, char *argv[]) } if (strcmp(argv[i] + 2, "version") == 0) { - puts(APP_INFO); + printf("%s\n", APP_INFO); + printf("%s\n", COPYRIGHT_INFO); return 0; } if (strcmp(argv[i] + 2, "display-log") == 0) @@ -137,6 +139,13 @@ int main(int argc, char *argv[]) fprintf(stderr, "chdir(..) error: %d\n", errno); return -1; } +#if defined(__MSYS__) || defined(__MINGW32__) + if (chdir("..") < 0) + { + fprintf(stderr, "chdir(..) error: %d\n", errno); + return -1; + } +#endif // Apply the specified locale if (setlocale(LC_ALL, "en_US.UTF-8") == NULL) @@ -218,7 +227,7 @@ int main(int argc, char *argv[]) if (trie_dict_init(VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL) < 0) { - printf("trie_dict_init(%s, %d) error\n", VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL); + log_error("trie_dict_init(%s, %d) error\n", VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL); goto cleanup; } if (article_block_init(VAR_ARTICLE_BLOCK_SHM, BBS_article_limit_per_section * BBS_max_section / BBS_article_count_per_block) < 0)