--- lbbs/src/article_post.c 2025/06/15 04:46:19 1.17 +++ lbbs/src/article_post.c 2025/06/15 13:42:38 1.19 @@ -110,6 +110,9 @@ int article_post(const SECTION_LIST *p_s { switch (toupper(ch)) { + case KEY_NULL: + case KEY_TIMEOUT: + goto cleanup; case CR: igetch_reset(); break; @@ -173,6 +176,9 @@ int article_post(const SECTION_LIST *p_s { switch (toupper(ch)) { + case KEY_NULL: + case KEY_TIMEOUT: + goto cleanup; case CR: igetch_reset(); case 'S': @@ -201,6 +207,11 @@ int article_post(const SECTION_LIST *p_s } } + if (SYS_server_exit) // Do not save data on shutdown + { + goto cleanup; + } + content = malloc(ARTICLE_CONTENT_MAX_LEN); if (content == NULL) { @@ -506,6 +517,9 @@ int article_modify(const SECTION_LIST *p { switch (toupper(ch)) { + case KEY_NULL: + case KEY_TIMEOUT: + goto cleanup; case CR: igetch_reset(); case 'S': @@ -526,6 +540,11 @@ int article_modify(const SECTION_LIST *p } } + if (SYS_server_exit) // Do not save data on shutdown + { + goto cleanup; + } + // Allocate buffers in big size content = malloc(ARTICLE_CONTENT_MAX_LEN); if (content == NULL) @@ -764,7 +783,7 @@ int article_reply(const SECTION_LIST *p_ { mysql_close(db); db = NULL; - + clearscr(); moveto(1, 1); prints("¸ÃÖ÷Ìâл¾ø»Ø¸´"); @@ -828,6 +847,11 @@ int article_reply(const SECTION_LIST *p_ len += 2; memcpy(content + len, content_f + line_offsets[i], (size_t)(line_offsets[i + 1] - line_offsets[i])); len += (line_offsets[i + 1] - line_offsets[i]); + if (content[len - 1] != '\n') // Appennd \n if not exist + { + content[len] = '\n'; + len++; + } } if (content[len - 1] != '\n') // Appennd \n if not exist { @@ -881,6 +905,9 @@ int article_reply(const SECTION_LIST *p_ { switch (toupper(ch)) { + case KEY_NULL: + case KEY_TIMEOUT: + goto cleanup; case CR: igetch_reset(); break; @@ -938,6 +965,9 @@ int article_reply(const SECTION_LIST *p_ { switch (toupper(ch)) { + case KEY_NULL: + case KEY_TIMEOUT: + goto cleanup; case CR: igetch_reset(); case 'S': @@ -966,6 +996,11 @@ int article_reply(const SECTION_LIST *p_ } } + if (SYS_server_exit) // Do not save data on shutdown + { + goto cleanup; + } + content = malloc(ARTICLE_CONTENT_MAX_LEN); if (content == NULL) {