Fossil SCM

Rename pLeaf to pEditLeaf to be consistent with the other edit fields

andygoth 2020-08-21 19:33 andygoth-forum-refactor
Commit 763d22b78a5e78459732cd0161fa15963d7f255c767b4ee5010e0a435e2694bb
1 file changed +29 -28
+29 -28
--- 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 *pLeaf; /* Most recent edit for this entry */
43
+ ForumEntry *pEditLeaf; /* 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 pLeaf should not be
198
+ ** completes, entries that have non-NULL pEditLeaf 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->pLeaf = pEntry;
209
+ p->pEditLeaf = 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 pLeaf nReply hash\n");
300
+ " sid fpid firt fprev mfirt pEditLeaf nReply hash\n");
301301
for(p=pThread->pFirst; p; p=p->pNext){
302
- fossil_print("%4d %9d %9d %9d %9d %9d %6d %8.8s\n", p->sid,
303
- p->fpid, p->firt, p->fprev, p->mfirt, p->pLeaf ? p->pLeaf->fpid : 0,
304
- p->nReply, p->zUuid);
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);
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->pLeaf ){
310
- fossil_print("%d->%d\n", p->fpid, p->pLeaf->fpid);
309
+ if( p->pEditLeaf ){
310
+ fossil_print("%d->%d\n", p->fpid, p->pEditLeaf->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->pLeaf!=0 ){
430
+ }else if( p->pEditLeaf!=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->pLeaf ){
462
- @ updated by %z(href("%R/forumpost/%S?t=%c",p->pLeaf->zUuid,cMode))\
463
- @ %d(p->pLeaf->sid)</a>
464
- zUuid = p->pLeaf->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;
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->pLeaf!=0 ){
481
+ }else if( p->pEditLeaf!=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->pLeaf==0 ){
488
+ if( g.perm.WrForum && p->pEditLeaf==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,15 +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>pLeaf<th>nReply<th>hash
524
+ @ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditLeaf<th>nReply\
525
+ @ <th>hash
525526
for(p=pThread->pFirst; p; p=p->pNext){
526527
@ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
527528
@ <td>%d(p->fprev)<td>%d(p->mfirt)\
528
- @ <td>%d(p->pLeaf?p->pLeaf->fpid:0)<td>%d(p->nReply)\
529
+ @ <td>%d(p->pEditLeaf?p->pEditLeaf->fpid:0)<td>%d(p->nReply)\
529530
@ <td>%S(p->zUuid)</tr>
530531
}
531532
@ </table>
532533
}
533534
@@ -539,15 +540,15 @@
539540
static void forum_display_history(int froot, int target, int bRawMode){
540541
ForumThread *pThread = forumthread_create(froot, 0);
541542
ForumEntry *p;
542543
int notAnon = login_is_individual();
543544
char cMode = bRawMode ? 'r' : 'c';
544
- ForumEntry *pLeaf = 0;
545
+ ForumEntry *pEditLeaf = 0;
545546
int cnt = 0;
546547
for(p=pThread->pFirst; p; p=p->pNext){
547548
if( p->fpid==target ){
548
- pLeaf = p->pLeaf ? p->pLeaf : p;
549
+ pEditLeaf = p->pEditLeaf ? p->pEditLeaf : p;
549550
break;
550551
}
551552
}
552553
for(p=pThread->pFirst; p; p=p->pNext){
553554
char *zDate;
@@ -555,11 +556,11 @@
555556
int isPrivate; /* True for posts awaiting moderation */
556557
int sameUser; /* True if author is also the reader */
557558
const char *zUuid;
558559
char *zDisplayName; /* The display name */
559560
560
- if( p->fpid!=pLeaf->fpid && p->pLeaf!=pLeaf ) continue;
561
+ if( p->fpid!=pEditLeaf->fpid && p->pEditLeaf!=pEditLeaf ) continue;
561562
cnt++;
562563
pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
563564
if( pPost==0 ) continue;
564565
@ <div id="forum%d(p->fpid)" class="forumTime">
565566
zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
@@ -591,11 +592,11 @@
591592
@ <p><span class="modpending">Awaiting Moderator Approval</span></p>
592593
}else{
593594
forum_render(0, bRawMode?"text/plain":pPost->zMimetype, pPost->zWiki,
594595
0, 1);
595596
}
596
- if( g.perm.WrForum && p->pLeaf==0 ){
597
+ if( g.perm.WrForum && p->pEditLeaf==0 ){
597598
int sameUser = login_is_individual()
598599
&& fossil_strcmp(pPost->zUser, g.zLogin)==0;
599600
@ <div><form action="%R/forumedit" method="POST">
600601
@ <input type="hidden" name="fpid" value="%s(p->zUuid)">
601602
if( !isPrivate ){
@@ -653,13 +654,13 @@
653654
for(p=pThread->pDisplay; p; p=p->pDisplay){
654655
int isPrivate; /* True for posts awaiting moderation */
655656
int sameUser; /* True if reader is also the poster */
656657
char *zDisplayName; /* User name to be displayed */
657658
pOPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
658
- if( p->pLeaf ){
659
- fpid = p->pLeaf->fpid;
660
- zUuid = p->pLeaf->zUuid;
659
+ if( p->pEditLeaf ){
660
+ fpid = p->pEditLeaf->fpid;
661
+ zUuid = p->pEditLeaf->zUuid;
661662
pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
662663
}else{
663664
fpid = p->fpid;
664665
zUuid = p->zUuid;
665666
pPost = pOPost;
@@ -683,22 +684,22 @@
683684
fossil_free(zDate);
684685
if( g.perm.Debug ){
685686
@ <span class="debug">\
686687
@ <a href="%R/artifact/%h(p->zUuid)">(artifact-%d(p->fpid))</a></span>
687688
}
688
- if( p->pLeaf ){
689
+ if( p->pEditLeaf ){
689690
zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
690691
if( fossil_strcmp(pOPost->zUser,pPost->zUser)==0 ){
691692
@ and edited on %h(zDate)
692693
}else{
693694
@ as edited by %h(pPost->zUser) on %h(zDate)
694695
}
695696
fossil_free(zDate);
696697
if( g.perm.Debug ){
697698
@ <span class="debug">\
698
- @ <a href="%R/artifact/%h(p->pLeaf->zUuid)">\
699
- @ (artifact-%d(p->pLeaf->fpid))</a></span>
699
+ @ <a href="%R/artifact/%h(p->pEditLeaf->zUuid)">\
700
+ @ (artifact-%d(p->pEditLeaf->fpid))</a></span>
700701
}
701702
@ %z(href("%R/forumpost/%S?t=y",p->zUuid))[history]</a>
702703
manifest_destroy(pOPost);
703704
}
704705
if( fpid!=target ){
705706
--- 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 *pLeaf; /* 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 pLeaf 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->pLeaf = 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 pLeaf nReply hash\n");
301 for(p=pThread->pFirst; p; p=p->pNext){
302 fossil_print("%4d %9d %9d %9d %9d %9d %6d %8.8s\n", p->sid,
303 p->fpid, p->firt, p->fprev, p->mfirt, p->pLeaf ? p->pLeaf->fpid : 0,
304 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->pLeaf ){
310 fossil_print("%d->%d\n", p->fpid, p->pLeaf->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->pLeaf!=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->pLeaf ){
462 @ updated by %z(href("%R/forumpost/%S?t=%c",p->pLeaf->zUuid,cMode))\
463 @ %d(p->pLeaf->sid)</a>
464 zUuid = p->pLeaf->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->pLeaf!=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->pLeaf==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,15 +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>pLeaf<th>nReply<th>hash
 
525 for(p=pThread->pFirst; p; p=p->pNext){
526 @ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
527 @ <td>%d(p->fprev)<td>%d(p->mfirt)\
528 @ <td>%d(p->pLeaf?p->pLeaf->fpid:0)<td>%d(p->nReply)\
529 @ <td>%S(p->zUuid)</tr>
530 }
531 @ </table>
532 }
533
@@ -539,15 +540,15 @@
539 static void forum_display_history(int froot, int target, int bRawMode){
540 ForumThread *pThread = forumthread_create(froot, 0);
541 ForumEntry *p;
542 int notAnon = login_is_individual();
543 char cMode = bRawMode ? 'r' : 'c';
544 ForumEntry *pLeaf = 0;
545 int cnt = 0;
546 for(p=pThread->pFirst; p; p=p->pNext){
547 if( p->fpid==target ){
548 pLeaf = p->pLeaf ? p->pLeaf : p;
549 break;
550 }
551 }
552 for(p=pThread->pFirst; p; p=p->pNext){
553 char *zDate;
@@ -555,11 +556,11 @@
555 int isPrivate; /* True for posts awaiting moderation */
556 int sameUser; /* True if author is also the reader */
557 const char *zUuid;
558 char *zDisplayName; /* The display name */
559
560 if( p->fpid!=pLeaf->fpid && p->pLeaf!=pLeaf ) continue;
561 cnt++;
562 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
563 if( pPost==0 ) continue;
564 @ <div id="forum%d(p->fpid)" class="forumTime">
565 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
@@ -591,11 +592,11 @@
591 @ <p><span class="modpending">Awaiting Moderator Approval</span></p>
592 }else{
593 forum_render(0, bRawMode?"text/plain":pPost->zMimetype, pPost->zWiki,
594 0, 1);
595 }
596 if( g.perm.WrForum && p->pLeaf==0 ){
597 int sameUser = login_is_individual()
598 && fossil_strcmp(pPost->zUser, g.zLogin)==0;
599 @ <div><form action="%R/forumedit" method="POST">
600 @ <input type="hidden" name="fpid" value="%s(p->zUuid)">
601 if( !isPrivate ){
@@ -653,13 +654,13 @@
653 for(p=pThread->pDisplay; p; p=p->pDisplay){
654 int isPrivate; /* True for posts awaiting moderation */
655 int sameUser; /* True if reader is also the poster */
656 char *zDisplayName; /* User name to be displayed */
657 pOPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
658 if( p->pLeaf ){
659 fpid = p->pLeaf->fpid;
660 zUuid = p->pLeaf->zUuid;
661 pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
662 }else{
663 fpid = p->fpid;
664 zUuid = p->zUuid;
665 pPost = pOPost;
@@ -683,22 +684,22 @@
683 fossil_free(zDate);
684 if( g.perm.Debug ){
685 @ <span class="debug">\
686 @ <a href="%R/artifact/%h(p->zUuid)">(artifact-%d(p->fpid))</a></span>
687 }
688 if( p->pLeaf ){
689 zDate = db_text(0, "SELECT datetime(%.17g)", pPost->rDate);
690 if( fossil_strcmp(pOPost->zUser,pPost->zUser)==0 ){
691 @ and edited on %h(zDate)
692 }else{
693 @ as edited by %h(pPost->zUser) on %h(zDate)
694 }
695 fossil_free(zDate);
696 if( g.perm.Debug ){
697 @ <span class="debug">\
698 @ <a href="%R/artifact/%h(p->pLeaf->zUuid)">\
699 @ (artifact-%d(p->pLeaf->fpid))</a></span>
700 }
701 @ %z(href("%R/forumpost/%S?t=y",p->zUuid))[history]</a>
702 manifest_destroy(pOPost);
703 }
704 if( fpid!=target ){
705
--- 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,15 +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
@@ -539,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;
@@ -555,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);
@@ -591,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 ){
@@ -653,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;
@@ -683,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

Keyboard Shortcuts

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