| 14 |
* * |
* * |
| 15 |
***************************************************************************/ |
***************************************************************************/ |
| 16 |
|
|
|
#define _POSIX_C_SOURCE 200809L |
|
|
|
|
| 17 |
#include "section_list_loader.h" |
#include "section_list_loader.h" |
| 18 |
#include "article_cache.h" |
#include "article_cache.h" |
| 19 |
#include "bbs.h" |
#include "bbs.h" |
| 20 |
#include "log.h" |
#include "log.h" |
| 21 |
#include "database.h" |
#include "database.h" |
| 22 |
#include "menu.h" |
#include "menu.h" |
|
#include <stdio.h> |
|
|
#include <string.h> |
|
| 23 |
#include <errno.h> |
#include <errno.h> |
| 24 |
#include <signal.h> |
#include <signal.h> |
| 25 |
|
#include <stdio.h> |
| 26 |
#include <stdlib.h> |
#include <stdlib.h> |
| 27 |
#include <string.h> |
#include <string.h> |
|
#include <strings.h> |
|
| 28 |
#include <unistd.h> |
#include <unistd.h> |
| 29 |
|
|
| 30 |
int section_list_loader_pid; |
int section_list_loader_pid; |
| 131 |
break; |
break; |
| 132 |
} |
} |
| 133 |
|
|
| 134 |
strncpy(p_section->sname, row[1], sizeof(p_section->sname) - 1); |
strncpy(p_section->sname, row[0], sizeof(p_section->sname) - 1); |
| 135 |
p_section->sname[sizeof(p_section->sname) - 1] = '\0'; |
p_section->sname[sizeof(p_section->sname) - 1] = '\0'; |
| 136 |
strncpy(p_section->stitle, row[1], sizeof(p_section->stitle) - 1); |
strncpy(p_section->stitle, row[1], sizeof(p_section->stitle) - 1); |
| 137 |
p_section->stitle[sizeof(p_section->stitle) - 1] = '\0'; |
p_section->stitle[sizeof(p_section->stitle) - 1] = '\0'; |
| 680 |
} |
} |
| 681 |
else |
else |
| 682 |
{ |
{ |
| 683 |
log_error("Reload section config successfully\n"); |
log_common("Reload section config successfully\n"); |
| 684 |
} |
} |
| 685 |
} |
} |
| 686 |
|
|
| 881 |
} |
} |
| 882 |
} |
} |
| 883 |
|
|
| 884 |
aid = (p_article->aid > p_article_cur->aid ? p_article->aid : 0); |
aid = (p_article->aid > p_article_cur->aid && p_article->visible ? p_article->aid : 0); |
| 885 |
} |
} |
| 886 |
else if (direction == -1) |
else if (direction == -1) |
| 887 |
{ |
{ |
| 893 |
} |
} |
| 894 |
} |
} |
| 895 |
|
|
| 896 |
aid = (p_article->aid < p_article_cur->aid ? p_article->aid : 0); |
aid = (p_article->aid < p_article_cur->aid && p_article->visible ? p_article->aid : 0); |
| 897 |
} |
} |
| 898 |
|
|
| 899 |
p_article = NULL; |
p_article = NULL; |
| 906 |
*p_article_count = (page_id == p_section->page_count - 1 ? p_section->last_page_visible_article_count : BBS_article_limit_per_page); |
*p_article_count = (page_id == p_section->page_count - 1 ? p_section->last_page_visible_article_count : BBS_article_limit_per_page); |
| 907 |
|
|
| 908 |
p_article = p_section->p_page_first_article[page_id]; |
p_article = p_section->p_page_first_article[page_id]; |
| 909 |
for (i = 0; i < *p_article_count;) |
for (i = 0; i < *p_article_count && p_article != NULL;) |
| 910 |
{ |
{ |
| 911 |
if (p_article->visible) |
if (p_article->visible) |
| 912 |
{ |
{ |
| 921 |
{ |
{ |
| 922 |
log_error("Visible article (aid=%d) not found in page %d\n", aid, page_id); |
log_error("Visible article (aid=%d) not found in page %d\n", aid, page_id); |
| 923 |
p_article = NULL; |
p_article = NULL; |
| 924 |
|
break; |
| 925 |
} |
} |
| 926 |
} |
} |
| 927 |
p_article = p_article->p_next; |
p_article = p_article->p_next; |