Fossil SCM

Rename pEditLeaf to pEditTail

andygoth 2020-08-21 19:34 andygoth-forum-refactor
Commit 145a6ef281a66d310858cdd552bda8f389baf333dc17109b0a4030ad2837a795
1 file changed +26 -26
+26 -26
--- src/forum.c
+++ src/forum.c
@@ -38,11 +38,11 @@
3838
int firt; /* This entry replies to firt */
3939
int mfirt; /* Root in-reply-to */
4040
int nReply; /* Number of replies to this entry */
4141
int sid; /* Serial ID number */
4242
char *zUuid; /* Artifact hash */
43
- ForumEntry *pEditLeaf; /* Most recent edit for this entry */
43
+ ForumEntry *pEditTail; /* Most recent edit for this entry */
4444
ForumEntry *pEditNext; /* This entry is edited by pEditNext */
4545
ForumEntry *pEditPrev; /* This entry is an edit of pEditPrev */
4646
ForumEntry *pNext; /* Next in chronological order */
4747
ForumEntry *pPrev; /* Previous in chronological order */
4848
ForumEntry *pDisplay; /* Next in display order */
@@ -193,11 +193,11 @@
193193
}
194194
db_finalize(&q);
195195
bag_clear(&seen);
196196
197197
/* Establish which entries are the latest edit. After this loop
198
- ** completes, entries that have non-NULL pEditLeaf should not be
198
+ ** completes, entries that have non-NULL pEditTail should not be
199199
** displayed.
200200
*/
201201
for(pEntry=pThread->pFirst; pEntry; pEntry=pEntry->pNext){
202202
if( pEntry->fprev ){
203203
ForumEntry *pBase = 0, *p;
@@ -204,11 +204,11 @@
204204
p = forumentry_backward(pEntry->pPrev, pEntry->fprev);
205205
p->pEditNext = pEntry;
206206
pEntry->pEditPrev = p;
207207
while( p ){
208208
pBase = p;
209
- p->pEditLeaf = pEntry;
209
+ p->pEditTail = pEntry;
210210
p = pBase->pEditPrev;
211211
}
212212
for(p=pEntry->pNext; p; p=p->pNext){
213213
if( p->mfirt==pEntry->fpid ) p->mfirt = pBase->fpid;
214214
}
@@ -295,21 +295,21 @@
295295
pThread = forumthread_create(froot, 1);
296296
fossil_print("Chronological:\n");
297297
fossil_print(
298298
/* 0 1 2 3 4 5 6 7 */
299299
/* 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123 */
300
- " sid fpid firt fprev mfirt pEditLeaf nReply hash\n");
300
+ " sid fpid firt fprev mfirt pEditTail nReply hash\n");
301301
for(p=pThread->pFirst; p; p=p->pNext){
302302
fossil_print("%4d %9d %9d %9d %11d %9d %6d %8.8s\n", p->sid,
303303
p->fpid, p->firt, p->fprev, p->mfirt,
304
- p->pEditLeaf ? p->pEditLeaf->fpid : 0, p->nReply, p->zUuid);
304
+ p->pEditTail ? p->pEditTail->fpid : 0, p->nReply, p->zUuid);
305305
}
306306
fossil_print("\nDisplay\n");
307307
for(p=pThread->pDisplay; p; p=p->pDisplay){
308308
fossil_print("%*s", (p->nIndent-1)*3, "");
309
- if( p->pEditLeaf ){
310
- fossil_print("%d->%d\n", p->fpid, p->pEditLeaf->fpid);
309
+ if( p->pEditTail ){
310
+ fossil_print("%d->%d\n", p->fpid, p->pEditTail->fpid);
311311
}else{
312312
fossil_print("%d\n", p->fpid);
313313
}
314314
}
315315
forumthread_delete(pThread);
@@ -425,11 +425,11 @@
425425
426426
pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
427427
if( pPost==0 ) continue;
428428
if( p->fpid==target ){
429429
@ <div id="forum%d(p->fpid)" class="forumTime forumSel">
430
- }else if( p->pEditLeaf!=0 ){
430
+ }else if( p->pEditTail!=0 ){
431431
@ <div id="forum%d(p->fpid)" class="forumTime forumObs">
432432
}else{
433433
@ <div id="forum%d(p->fpid)" class="forumTime">
434434
}
435435
if( pPost->zThreadTitle ){
@@ -456,14 +456,14 @@
456456
@ in reply to %z(href("%R/forumpost/%S?t=%c",pIrt->zUuid,cMode))\
457457
@ %d(pIrt->sid)</a>
458458
}
459459
}
460460
zUuid = p->zUuid;
461
- if( p->pEditLeaf ){
462
- @ updated by %z(href("%R/forumpost/%S?t=%c",p->pEditLeaf->zUuid,cMode))\
463
- @ %d(p->pEditLeaf->sid)</a>
464
- zUuid = p->pEditLeaf->zUuid;
461
+ if( p->pEditTail ){
462
+ @ updated by %z(href("%R/forumpost/%S?t=%c",p->pEditTail->zUuid,cMode))\
463
+ @ %d(p->pEditTail->sid)</a>
464
+ zUuid = p->pEditTail->zUuid;
465465
}
466466
if( p->fpid!=target ){
467467
@ %z(href("%R/forumpost/%S?t=%c",zUuid,cMode))[link]</a>
468468
}
469469
if( !bRawMode ){
@@ -476,18 +476,18 @@
476476
@ <p><span class="modpending">Awaiting Moderator Approval</span></p>
477477
}else{
478478
const char *zMimetype;
479479
if( bRawMode ){
480480
zMimetype = "text/plain";
481
- }else if( p->pEditLeaf!=0 ){
481
+ }else if( p->pEditTail!=0 ){
482482
zMimetype = "text/plain";
483483
}else{
484484
zMimetype = pPost->zMimetype;
485485
}
486486
forum_render(0, zMimetype, pPost->zWiki, 0, 1);
487487
}
488
- if( g.perm.WrForum && p->pEditLeaf==0 ){
488
+ if( g.perm.WrForum && p->pEditTail==0 ){
489489
int sameUser = login_is_individual()
490490
&& fossil_strcmp(pPost->zUser, g.zLogin)==0;
491491
@ <div><form action="%R/forumedit" method="POST">
492492
@ <input type="hidden" name="fpid" value="%s(p->zUuid)">
493493
if( !isPrivate ){
@@ -519,16 +519,16 @@
519519
** to be displayed for debugging purposes.
520520
*/
521521
if( PB("threadtable") ){
522522
@ <hr>
523523
@ <table border="1" cellpadding="3" cellspacing="0">
524
- @ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditLeaf<th>nReply\
524
+ @ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditTail<th>nReply\
525525
@ <th>hash
526526
for(p=pThread->pFirst; p; p=p->pNext){
527527
@ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
528528
@ <td>%d(p->fprev)<td>%d(p->mfirt)\
529
- @ <td>%d(p->pEditLeaf?p->pEditLeaf->fpid:0)<td>%d(p->nReply)\
529
+ @ <td>%d(p->pEditTail?p->pEditTail->fpid:0)<td>%d(p->nReply)\
530530
@ <td>%S(p->zUuid)</tr>
531531
}
532532
@ </table>
533533
}
534534
@@ -540,15 +540,15 @@
540540
static void forum_display_history(int froot, int target, int bRawMode){
541541
ForumThread *pThread = forumthread_create(froot, 0);
542542
ForumEntry *p;
543543
int notAnon = login_is_individual();
544544
char cMode = bRawMode ? 'r' : 'c';
545
- ForumEntry *pEditLeaf = 0;
545
+ ForumEntry *pEditTail = 0;
546546
int cnt = 0;
547547
for(p=pThread->pFirst; p; p=p->pNext){
548548
if( p->fpid==target ){
549
- pEditLeaf = p->pEditLeaf ? p->pEditLeaf : p;
549
+ pEditTail = p->pEditTail ? p->pEditTail : p;
550550
break;
551551
}
552552
}
553553
for(p=pThread->pFirst; p; p=p->pNext){
554554
char *zDate;
@@ -556,11 +556,11 @@
556556
int isPrivate; /* True for posts awaiting moderation */
557557
int sameUser; /* True if author is also the reader */
558558
const char *zUuid;
559559
char *zDisplayName; /* The display name */
560560
561
- if( p->fpid!=pEditLeaf->fpid && p->pEditLeaf!=pEditLeaf ) continue;
561
+ if( p->fpid!=pEditTail->fpid && p->pEditTail!=pEditTail ) continue;
562562
cnt++;
563563
pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
564564
if( pPost==0 ) continue;
565565
@ <div id="forum%d(p->fpid)" class="forumTime">
566566
zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
@@ -592,11 +592,11 @@
592592
@ <p><span class="modpending">Awaiting Moderator Approval</span></p>
593593
}else{
594594
forum_render(0, bRawMode?"text/plain":pPost->zMimetype, pPost->zWiki,
595595
0, 1);
596596
}
597
- if( g.perm.WrForum && p->pEditLeaf==0 ){
597
+ if( g.perm.WrForum && p->pEditTail==0 ){
598598
int sameUser = login_is_individual()
599599
&& fossil_strcmp(pPost->zUser, g.zLogin)==0;
600600
@ <div><form action="%R/forumedit" method="POST">
601601
@ <input type="hidden" name="fpid" value="%s(p->zUuid)">
602602
if( !isPrivate ){
@@ -654,13 +654,13 @@
654654
for(p=pThread->pDisplay; p; p=p->pDisplay){
655655
int isPrivate; /* True for posts awaiting moderation */
656656
int sameUser; /* True if reader is also the poster */
657657
char *zDisplayName; /* User name to be displayed */
658658
pOPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
659
- if( p->pEditLeaf ){
660
- fpid = p->pEditLeaf->fpid;
661
- zUuid = p->pEditLeaf->zUuid;
659
+ if( p->pEditTail ){
660
+ fpid = p->pEditTail->fpid;
661
+ zUuid = p->pEditTail->zUuid;
662662
pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
663663
}else{
664664
fpid = p->fpid;
665665
zUuid = p->zUuid;
666666
pPost = pOPost;
@@ -684,22 +684,22 @@
684684
fossil_free(zDate);
685685
if( g.perm.Debug ){
686686
@ <span class="debug">\
687687
@ <a href="%R/artifact/%h(p->zUuid)">(artifact-%d(p->fpid))</a></span>
688688
}
689
- if( p->pEditLeaf ){
689
+ if( p->pEditTail ){
690690
zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
691691
if( fossil_strcmp(pOPost->zUser,pPost->zUser)==0 ){
692692
@ and edited on %h(zDate)
693693
}else{
694694
@ as edited by %h(pPost->zUser) on %h(zDate)
695695
}
696696
fossil_free(zDate);
697697
if( g.perm.Debug ){
698698
@ <span class="debug">\
699
- @ <a href="%R/artifact/%h(p->pEditLeaf->zUuid)">\
700
- @ (artifact-%d(p->pEditLeaf->fpid))</a></span>
699
+ @ <a href="%R/artifact/%h(p->pEditTail->zUuid)">\
700
+ @ (artifact-%d(p->pEditTail->fpid))</a></span>
701701
}
702702
@ %z(href("%R/forumpost/%S?t=y",p->zUuid))[history]</a>
703703
manifest_destroy(pOPost);
704704
}
705705
if( fpid!=target ){
706706
--- src/forum.c
+++ src/forum.c
@@ -38,11 +38,11 @@
38 int firt; /* This entry replies to firt */
39 int mfirt; /* Root in-reply-to */
40 int nReply; /* Number of replies to this entry */
41 int sid; /* Serial ID number */
42 char *zUuid; /* Artifact hash */
43 ForumEntry *pEditLeaf; /* Most recent edit for this entry */
44 ForumEntry *pEditNext; /* This entry is edited by pEditNext */
45 ForumEntry *pEditPrev; /* This entry is an edit of pEditPrev */
46 ForumEntry *pNext; /* Next in chronological order */
47 ForumEntry *pPrev; /* Previous in chronological order */
48 ForumEntry *pDisplay; /* Next in display order */
@@ -193,11 +193,11 @@
193 }
194 db_finalize(&q);
195 bag_clear(&seen);
196
197 /* Establish which entries are the latest edit. After this loop
198 ** completes, entries that have non-NULL pEditLeaf should not be
199 ** displayed.
200 */
201 for(pEntry=pThread->pFirst; pEntry; pEntry=pEntry->pNext){
202 if( pEntry->fprev ){
203 ForumEntry *pBase = 0, *p;
@@ -204,11 +204,11 @@
204 p = forumentry_backward(pEntry->pPrev, pEntry->fprev);
205 p->pEditNext = pEntry;
206 pEntry->pEditPrev = p;
207 while( p ){
208 pBase = p;
209 p->pEditLeaf = pEntry;
210 p = pBase->pEditPrev;
211 }
212 for(p=pEntry->pNext; p; p=p->pNext){
213 if( p->mfirt==pEntry->fpid ) p->mfirt = pBase->fpid;
214 }
@@ -295,21 +295,21 @@
295 pThread = forumthread_create(froot, 1);
296 fossil_print("Chronological:\n");
297 fossil_print(
298 /* 0 1 2 3 4 5 6 7 */
299 /* 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123 */
300 " sid fpid firt fprev mfirt pEditLeaf nReply hash\n");
301 for(p=pThread->pFirst; p; p=p->pNext){
302 fossil_print("%4d %9d %9d %9d %11d %9d %6d %8.8s\n", p->sid,
303 p->fpid, p->firt, p->fprev, p->mfirt,
304 p->pEditLeaf ? p->pEditLeaf->fpid : 0, p->nReply, p->zUuid);
305 }
306 fossil_print("\nDisplay\n");
307 for(p=pThread->pDisplay; p; p=p->pDisplay){
308 fossil_print("%*s", (p->nIndent-1)*3, "");
309 if( p->pEditLeaf ){
310 fossil_print("%d->%d\n", p->fpid, p->pEditLeaf->fpid);
311 }else{
312 fossil_print("%d\n", p->fpid);
313 }
314 }
315 forumthread_delete(pThread);
@@ -425,11 +425,11 @@
425
426 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
427 if( pPost==0 ) continue;
428 if( p->fpid==target ){
429 @ <div id="forum%d(p->fpid)" class="forumTime forumSel">
430 }else if( p->pEditLeaf!=0 ){
431 @ <div id="forum%d(p->fpid)" class="forumTime forumObs">
432 }else{
433 @ <div id="forum%d(p->fpid)" class="forumTime">
434 }
435 if( pPost->zThreadTitle ){
@@ -456,14 +456,14 @@
456 @ in reply to %z(href("%R/forumpost/%S?t=%c",pIrt->zUuid,cMode))\
457 @ %d(pIrt->sid)</a>
458 }
459 }
460 zUuid = p->zUuid;
461 if( p->pEditLeaf ){
462 @ updated by %z(href("%R/forumpost/%S?t=%c",p->pEditLeaf->zUuid,cMode))\
463 @ %d(p->pEditLeaf->sid)</a>
464 zUuid = p->pEditLeaf->zUuid;
465 }
466 if( p->fpid!=target ){
467 @ %z(href("%R/forumpost/%S?t=%c",zUuid,cMode))[link]</a>
468 }
469 if( !bRawMode ){
@@ -476,18 +476,18 @@
476 @ <p><span class="modpending">Awaiting Moderator Approval</span></p>
477 }else{
478 const char *zMimetype;
479 if( bRawMode ){
480 zMimetype = "text/plain";
481 }else if( p->pEditLeaf!=0 ){
482 zMimetype = "text/plain";
483 }else{
484 zMimetype = pPost->zMimetype;
485 }
486 forum_render(0, zMimetype, pPost->zWiki, 0, 1);
487 }
488 if( g.perm.WrForum && p->pEditLeaf==0 ){
489 int sameUser = login_is_individual()
490 && fossil_strcmp(pPost->zUser, g.zLogin)==0;
491 @ <div><form action="%R/forumedit" method="POST">
492 @ <input type="hidden" name="fpid" value="%s(p->zUuid)">
493 if( !isPrivate ){
@@ -519,16 +519,16 @@
519 ** to be displayed for debugging purposes.
520 */
521 if( PB("threadtable") ){
522 @ <hr>
523 @ <table border="1" cellpadding="3" cellspacing="0">
524 @ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditLeaf<th>nReply\
525 @ <th>hash
526 for(p=pThread->pFirst; p; p=p->pNext){
527 @ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
528 @ <td>%d(p->fprev)<td>%d(p->mfirt)\
529 @ <td>%d(p->pEditLeaf?p->pEditLeaf->fpid:0)<td>%d(p->nReply)\
530 @ <td>%S(p->zUuid)</tr>
531 }
532 @ </table>
533 }
534
@@ -540,15 +540,15 @@
540 static void forum_display_history(int froot, int target, int bRawMode){
541 ForumThread *pThread = forumthread_create(froot, 0);
542 ForumEntry *p;
543 int notAnon = login_is_individual();
544 char cMode = bRawMode ? 'r' : 'c';
545 ForumEntry *pEditLeaf = 0;
546 int cnt = 0;
547 for(p=pThread->pFirst; p; p=p->pNext){
548 if( p->fpid==target ){
549 pEditLeaf = p->pEditLeaf ? p->pEditLeaf : p;
550 break;
551 }
552 }
553 for(p=pThread->pFirst; p; p=p->pNext){
554 char *zDate;
@@ -556,11 +556,11 @@
556 int isPrivate; /* True for posts awaiting moderation */
557 int sameUser; /* True if author is also the reader */
558 const char *zUuid;
559 char *zDisplayName; /* The display name */
560
561 if( p->fpid!=pEditLeaf->fpid && p->pEditLeaf!=pEditLeaf ) continue;
562 cnt++;
563 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
564 if( pPost==0 ) continue;
565 @ <div id="forum%d(p->fpid)" class="forumTime">
566 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
@@ -592,11 +592,11 @@
592 @ <p><span class="modpending">Awaiting Moderator Approval</span></p>
593 }else{
594 forum_render(0, bRawMode?"text/plain":pPost->zMimetype, pPost->zWiki,
595 0, 1);
596 }
597 if( g.perm.WrForum && p->pEditLeaf==0 ){
598 int sameUser = login_is_individual()
599 && fossil_strcmp(pPost->zUser, g.zLogin)==0;
600 @ <div><form action="%R/forumedit" method="POST">
601 @ <input type="hidden" name="fpid" value="%s(p->zUuid)">
602 if( !isPrivate ){
@@ -654,13 +654,13 @@
654 for(p=pThread->pDisplay; p; p=p->pDisplay){
655 int isPrivate; /* True for posts awaiting moderation */
656 int sameUser; /* True if reader is also the poster */
657 char *zDisplayName; /* User name to be displayed */
658 pOPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
659 if( p->pEditLeaf ){
660 fpid = p->pEditLeaf->fpid;
661 zUuid = p->pEditLeaf->zUuid;
662 pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
663 }else{
664 fpid = p->fpid;
665 zUuid = p->zUuid;
666 pPost = pOPost;
@@ -684,22 +684,22 @@
684 fossil_free(zDate);
685 if( g.perm.Debug ){
686 @ <span class="debug">\
687 @ <a href="%R/artifact/%h(p->zUuid)">(artifact-%d(p->fpid))</a></span>
688 }
689 if( p->pEditLeaf ){
690 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
691 if( fossil_strcmp(pOPost->zUser,pPost->zUser)==0 ){
692 @ and edited on %h(zDate)
693 }else{
694 @ as edited by %h(pPost->zUser) on %h(zDate)
695 }
696 fossil_free(zDate);
697 if( g.perm.Debug ){
698 @ <span class="debug">\
699 @ <a href="%R/artifact/%h(p->pEditLeaf->zUuid)">\
700 @ (artifact-%d(p->pEditLeaf->fpid))</a></span>
701 }
702 @ %z(href("%R/forumpost/%S?t=y",p->zUuid))[history]</a>
703 manifest_destroy(pOPost);
704 }
705 if( fpid!=target ){
706
--- src/forum.c
+++ src/forum.c
@@ -38,11 +38,11 @@
38 int firt; /* This entry replies to firt */
39 int mfirt; /* Root in-reply-to */
40 int nReply; /* Number of replies to this entry */
41 int sid; /* Serial ID number */
42 char *zUuid; /* Artifact hash */
43 ForumEntry *pEditTail; /* Most recent edit for this entry */
44 ForumEntry *pEditNext; /* This entry is edited by pEditNext */
45 ForumEntry *pEditPrev; /* This entry is an edit of pEditPrev */
46 ForumEntry *pNext; /* Next in chronological order */
47 ForumEntry *pPrev; /* Previous in chronological order */
48 ForumEntry *pDisplay; /* Next in display order */
@@ -193,11 +193,11 @@
193 }
194 db_finalize(&q);
195 bag_clear(&seen);
196
197 /* Establish which entries are the latest edit. After this loop
198 ** completes, entries that have non-NULL pEditTail should not be
199 ** displayed.
200 */
201 for(pEntry=pThread->pFirst; pEntry; pEntry=pEntry->pNext){
202 if( pEntry->fprev ){
203 ForumEntry *pBase = 0, *p;
@@ -204,11 +204,11 @@
204 p = forumentry_backward(pEntry->pPrev, pEntry->fprev);
205 p->pEditNext = pEntry;
206 pEntry->pEditPrev = p;
207 while( p ){
208 pBase = p;
209 p->pEditTail = pEntry;
210 p = pBase->pEditPrev;
211 }
212 for(p=pEntry->pNext; p; p=p->pNext){
213 if( p->mfirt==pEntry->fpid ) p->mfirt = pBase->fpid;
214 }
@@ -295,21 +295,21 @@
295 pThread = forumthread_create(froot, 1);
296 fossil_print("Chronological:\n");
297 fossil_print(
298 /* 0 1 2 3 4 5 6 7 */
299 /* 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123 */
300 " sid fpid firt fprev mfirt pEditTail nReply hash\n");
301 for(p=pThread->pFirst; p; p=p->pNext){
302 fossil_print("%4d %9d %9d %9d %11d %9d %6d %8.8s\n", p->sid,
303 p->fpid, p->firt, p->fprev, p->mfirt,
304 p->pEditTail ? p->pEditTail->fpid : 0, p->nReply, p->zUuid);
305 }
306 fossil_print("\nDisplay\n");
307 for(p=pThread->pDisplay; p; p=p->pDisplay){
308 fossil_print("%*s", (p->nIndent-1)*3, "");
309 if( p->pEditTail ){
310 fossil_print("%d->%d\n", p->fpid, p->pEditTail->fpid);
311 }else{
312 fossil_print("%d\n", p->fpid);
313 }
314 }
315 forumthread_delete(pThread);
@@ -425,11 +425,11 @@
425
426 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
427 if( pPost==0 ) continue;
428 if( p->fpid==target ){
429 @ <div id="forum%d(p->fpid)" class="forumTime forumSel">
430 }else if( p->pEditTail!=0 ){
431 @ <div id="forum%d(p->fpid)" class="forumTime forumObs">
432 }else{
433 @ <div id="forum%d(p->fpid)" class="forumTime">
434 }
435 if( pPost->zThreadTitle ){
@@ -456,14 +456,14 @@
456 @ in reply to %z(href("%R/forumpost/%S?t=%c",pIrt->zUuid,cMode))\
457 @ %d(pIrt->sid)</a>
458 }
459 }
460 zUuid = p->zUuid;
461 if( p->pEditTail ){
462 @ updated by %z(href("%R/forumpost/%S?t=%c",p->pEditTail->zUuid,cMode))\
463 @ %d(p->pEditTail->sid)</a>
464 zUuid = p->pEditTail->zUuid;
465 }
466 if( p->fpid!=target ){
467 @ %z(href("%R/forumpost/%S?t=%c",zUuid,cMode))[link]</a>
468 }
469 if( !bRawMode ){
@@ -476,18 +476,18 @@
476 @ <p><span class="modpending">Awaiting Moderator Approval</span></p>
477 }else{
478 const char *zMimetype;
479 if( bRawMode ){
480 zMimetype = "text/plain";
481 }else if( p->pEditTail!=0 ){
482 zMimetype = "text/plain";
483 }else{
484 zMimetype = pPost->zMimetype;
485 }
486 forum_render(0, zMimetype, pPost->zWiki, 0, 1);
487 }
488 if( g.perm.WrForum && p->pEditTail==0 ){
489 int sameUser = login_is_individual()
490 && fossil_strcmp(pPost->zUser, g.zLogin)==0;
491 @ <div><form action="%R/forumedit" method="POST">
492 @ <input type="hidden" name="fpid" value="%s(p->zUuid)">
493 if( !isPrivate ){
@@ -519,16 +519,16 @@
519 ** to be displayed for debugging purposes.
520 */
521 if( PB("threadtable") ){
522 @ <hr>
523 @ <table border="1" cellpadding="3" cellspacing="0">
524 @ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditTail<th>nReply\
525 @ <th>hash
526 for(p=pThread->pFirst; p; p=p->pNext){
527 @ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
528 @ <td>%d(p->fprev)<td>%d(p->mfirt)\
529 @ <td>%d(p->pEditTail?p->pEditTail->fpid:0)<td>%d(p->nReply)\
530 @ <td>%S(p->zUuid)</tr>
531 }
532 @ </table>
533 }
534
@@ -540,15 +540,15 @@
540 static void forum_display_history(int froot, int target, int bRawMode){
541 ForumThread *pThread = forumthread_create(froot, 0);
542 ForumEntry *p;
543 int notAnon = login_is_individual();
544 char cMode = bRawMode ? 'r' : 'c';
545 ForumEntry *pEditTail = 0;
546 int cnt = 0;
547 for(p=pThread->pFirst; p; p=p->pNext){
548 if( p->fpid==target ){
549 pEditTail = p->pEditTail ? p->pEditTail : p;
550 break;
551 }
552 }
553 for(p=pThread->pFirst; p; p=p->pNext){
554 char *zDate;
@@ -556,11 +556,11 @@
556 int isPrivate; /* True for posts awaiting moderation */
557 int sameUser; /* True if author is also the reader */
558 const char *zUuid;
559 char *zDisplayName; /* The display name */
560
561 if( p->fpid!=pEditTail->fpid && p->pEditTail!=pEditTail ) continue;
562 cnt++;
563 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
564 if( pPost==0 ) continue;
565 @ <div id="forum%d(p->fpid)" class="forumTime">
566 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
@@ -592,11 +592,11 @@
592 @ <p><span class="modpending">Awaiting Moderator Approval</span></p>
593 }else{
594 forum_render(0, bRawMode?"text/plain":pPost->zMimetype, pPost->zWiki,
595 0, 1);
596 }
597 if( g.perm.WrForum && p->pEditTail==0 ){
598 int sameUser = login_is_individual()
599 && fossil_strcmp(pPost->zUser, g.zLogin)==0;
600 @ <div><form action="%R/forumedit" method="POST">
601 @ <input type="hidden" name="fpid" value="%s(p->zUuid)">
602 if( !isPrivate ){
@@ -654,13 +654,13 @@
654 for(p=pThread->pDisplay; p; p=p->pDisplay){
655 int isPrivate; /* True for posts awaiting moderation */
656 int sameUser; /* True if reader is also the poster */
657 char *zDisplayName; /* User name to be displayed */
658 pOPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
659 if( p->pEditTail ){
660 fpid = p->pEditTail->fpid;
661 zUuid = p->pEditTail->zUuid;
662 pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
663 }else{
664 fpid = p->fpid;
665 zUuid = p->zUuid;
666 pPost = pOPost;
@@ -684,22 +684,22 @@
684 fossil_free(zDate);
685 if( g.perm.Debug ){
686 @ <span class="debug">\
687 @ <a href="%R/artifact/%h(p->zUuid)">(artifact-%d(p->fpid))</a></span>
688 }
689 if( p->pEditTail ){
690 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
691 if( fossil_strcmp(pOPost->zUser,pPost->zUser)==0 ){
692 @ and edited on %h(zDate)
693 }else{
694 @ as edited by %h(pPost->zUser) on %h(zDate)
695 }
696 fossil_free(zDate);
697 if( g.perm.Debug ){
698 @ <span class="debug">\
699 @ <a href="%R/artifact/%h(p->pEditTail->zUuid)">\
700 @ (artifact-%d(p->pEditTail->fpid))</a></span>
701 }
702 @ %z(href("%R/forumpost/%S?t=y",p->zUuid))[history]</a>
703 manifest_destroy(pOPost);
704 }
705 if( fpid!=target ){
706

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button