/[LeafOK_CVS]/lbbs/src/section_list_loader.c
ViewVC logotype

Diff of /lbbs/src/section_list_loader.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.39 by sysadm, Wed Jul 23 01:15:21 2025 UTC Revision 1.41 by sysadm, Tue Sep 30 13:27:28 2025 UTC
# Line 206  int append_articles_from_db(int32_t star Line 206  int append_articles_from_db(int32_t star
206          int article_count = 0;          int article_count = 0;
207          int ret = 0;          int ret = 0;
208          int i;          int i;
209            size_t j;
210    
211          db = db_open();          db = db_open();
212          if (db == NULL)          if (db == NULL)
# Line 268  int append_articles_from_db(int32_t star Line 269  int append_articles_from_db(int32_t star
269                  strncpy(article.title, row[i++], sizeof(article.title) - 1);                  strncpy(article.title, row[i++], sizeof(article.title) - 1);
270                  article.title[sizeof(article.title) - 1] = '\0';                  article.title[sizeof(article.title) - 1] = '\0';
271    
272                    // Rewrite title with "Re: Re: " prefix into "Re: ... "
273                    if (article.tid != 0)
274                    {
275                            for (j = 0; strncmp(article.title + j, "Re: ", strlen("Re: ")) == 0; j += strlen("Re: "))
276                                    ;
277                            if (j >= strlen("Re: Re: "))
278                            {
279                                    memcpy(article.title, "Re: ... ", strlen("Re: ... "));
280                                    memmove(article.title + strlen("Re: ... "), article.title + j, sizeof(article.title) - 1 - j);
281                                    article.title[sizeof(article.title) - 1 - j] = '\0';
282                            }
283                    }
284    
285                  article.sub_dt = atol(row[i++]);                  article.sub_dt = atol(row[i++]);
286    
287                  strncpy(sub_ip, row[i++], sizeof(sub_ip) - 1);                  strncpy(sub_ip, row[i++], sizeof(sub_ip) - 1);
# Line 918  int locate_article_in_section(SECTION_LI Line 932  int locate_article_in_section(SECTION_LI
932                                                            int *p_page_id, int *p_visible_offset, int *p_article_count)                                                            int *p_page_id, int *p_visible_offset, int *p_article_count)
933  {  {
934          const ARTICLE *p_article = NULL;          const ARTICLE *p_article = NULL;
935            const ARTICLE *p_article_last = NULL;
936          ARTICLE *p_tmp;          ARTICLE *p_tmp;
937          int32_t aid = 0;          int32_t aid = 0;
938          int page_id = 0;          int page_id = 0;
# Line 944  int locate_article_in_section(SECTION_LI Line 959  int locate_article_in_section(SECTION_LI
959          }          }
960          else if (direction == 1)          else if (direction == 1)
961          {          {
962                  for (p_article = p_article_cur; step > 0 && p_article->p_topic_next->aid > p_article_cur->aid; p_article = p_article->p_topic_next)                  for (p_article = p_article_cur, p_article_last = p_article_cur;
963                             step > 0 && p_article->p_topic_next->aid > p_article_cur->aid;
964                             p_article = p_article->p_topic_next)
965                  {                  {
966                          if (p_article->visible)                          if (p_article->visible)
967                          {                          {
968                                  step--;                                  step--;
969                                    p_article_last = p_article;
970                          }                          }
971                  }                  }
972                    if (!p_article->visible)
973                    {
974                            p_article = p_article_last;
975                    }
976    
977                  aid = (p_article->aid > p_article_cur->aid && p_article->visible ? p_article->aid : 0);                  aid = (p_article->aid > p_article_cur->aid && p_article->visible ? p_article->aid : 0);
978          }          }
979          else if (direction == -1)          else if (direction == -1)
980          {          {
981                  for (p_article = p_article_cur; step > 0 && p_article->p_topic_prior->aid < p_article_cur->aid; p_article = p_article->p_topic_prior)                  for (p_article = p_article_cur, p_article_last = p_article_cur;
982                             step > 0 && p_article->p_topic_prior->aid < p_article_cur->aid;
983                             p_article = p_article->p_topic_prior)
984                  {                  {
985                          if (p_article->visible)                          if (p_article->visible)
986                          {                          {
987                                  step--;                                  step--;
988                                    p_article_last = p_article;
989                          }                          }
990                  }                  }
991                    if (!p_article->visible)
992                    {
993                            p_article = p_article_last;
994                    }
995    
996                  aid = (p_article->aid < p_article_cur->aid && p_article->visible ? p_article->aid : 0);                  aid = (p_article->aid < p_article_cur->aid && p_article->visible ? p_article->aid : 0);
997          }          }


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1