| 111 |
|
|
| 112 |
// Generate article header / footer |
// Generate article header / footer |
| 113 |
localtime_r(&(p_article->sub_dt), &tm_sub_dt); |
localtime_r(&(p_article->sub_dt), &tm_sub_dt); |
| 114 |
strftime(str_sub_dt, sizeof(str_sub_dt), "%c", &tm_sub_dt); |
strftime(str_sub_dt, sizeof(str_sub_dt), "%c %Z", &tm_sub_dt); |
| 115 |
|
|
| 116 |
snprintf(header, sizeof(header), "发布者: %s (%s), 版块: %s (%s)\n标 题: %s\n发布于: %s (%s)\n\n", |
snprintf(header, sizeof(header), "发布者: %s (%s), 版块: %s (%s)\n标 题: %s\n发布于: %s (%s)\n\n", |
| 117 |
p_article->username, p_article->nickname, p_section->sname, p_section->stitle, p_article->title, BBS_name, str_sub_dt); |
p_article->username, p_article->nickname, p_section->sname, p_section->stitle, p_article->title, BBS_name, str_sub_dt); |
| 135 |
} |
} |
| 136 |
|
|
| 137 |
// Apply LML render to content body |
// Apply LML render to content body |
| 138 |
cache.data_len = header_len + (size_t)lml_render(content, content_f, ARTICLE_CONTENT_MAX_LEN, 1); |
cache.data_len = header_len + (size_t)lml_render(content, content_f, ARTICLE_CONTENT_MAX_LEN, SCREEN_COLS, 0); |
| 139 |
|
|
| 140 |
cache.line_total = header_line_cnt + |
cache.line_total = header_line_cnt + |
| 141 |
split_data_lines(content_f, SCREEN_COLS, cache.line_offsets + header_line_cnt, MAX_SPLIT_FILE_LINES - header_line_cnt, 1, NULL); |
split_data_lines(content_f, SCREEN_COLS + 1, cache.line_offsets + header_line_cnt, MAX_SPLIT_FILE_LINES - header_line_cnt, 1, NULL); |
| 142 |
|
|
| 143 |
if (cache.data_len - header_len != (size_t)cache.line_offsets[cache.line_total]) |
if (cache.data_len - header_len != (size_t)cache.line_offsets[cache.line_total]) |
| 144 |
{ |
{ |
| 274 |
memcpy((void *)p_cache, p_mmap, (size_t)(((ARTICLE_CACHE *)p_mmap)->mmap_len - ((ARTICLE_CACHE *)p_mmap)->data_len)); |
memcpy((void *)p_cache, p_mmap, (size_t)(((ARTICLE_CACHE *)p_mmap)->mmap_len - ((ARTICLE_CACHE *)p_mmap)->data_len)); |
| 275 |
|
|
| 276 |
p_cache->p_mmap = p_mmap; |
p_cache->p_mmap = p_mmap; |
| 277 |
p_cache->p_data = p_mmap + (p_cache->mmap_len - p_cache->data_len); |
p_cache->p_data = (char *)p_mmap + (p_cache->mmap_len - p_cache->data_len); |
| 278 |
|
|
| 279 |
return 0; |
return 0; |
| 280 |
} |
} |