Fossil SCM

Fix the "(source)" links on the forum to point to the most recent edit of the post, not the original post.

drh 2020-03-14 15:16 trunk
Commit 33dc88c417799ea98bfb44a674df73d4a3f8ff7984ccd4c31f1d3290f0ff938a
1 file changed +6 -3
+6 -3
--- src/forum.c
+++ src/forum.c
@@ -348,10 +348,11 @@
348348
for(p=pThread->pFirst; p; p=p->pNext){
349349
char *zDate;
350350
Manifest *pPost;
351351
int isPrivate; /* True for posts awaiting moderation */
352352
int sameUser; /* True if author is also the reader */
353
+ const char *zUuid;
353354
354355
pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
355356
if( pPost==0 ) continue;
356357
if( p->fpid==target ){
357358
@ <div id="forum%d(p->fpid)" class="forumTime forumSel">
@@ -380,19 +381,21 @@
380381
if( pIrt ){
381382
@ in reply to %z(href("%R/forumpost/%S?t=c",pIrt->zUuid))\
382383
@ %d(pIrt->sid)</a>
383384
}
384385
}
386
+ zUuid = p->zUuid;
385387
if( p->pLeaf ){
386388
@ updated by %z(href("%R/forumpost/%S?t=c",p->pLeaf->zUuid))\
387389
@ %d(p->pLeaf->sid)</a>
390
+ zUuid = p->pLeaf->zUuid;
388391
}
389392
if( p->fpid!=target ){
390
- @ %z(href("%R/forumpost/%S?t=c",p->zUuid))[link]</a>
393
+ @ %z(href("%R/forumpost/%S?t=c",zUuid))[link]</a>
391394
}
392395
if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
393
- @ %z(href("%R/forumpost/%S?raw",p->zUuid))[source]</a>
396
+ @ %z(href("%R/forumpost/%S?raw",zUuid))[source]</a>
394397
}
395398
isPrivate = content_is_private(p->fpid);
396399
sameUser = notAnon && fossil_strcmp(pPost->zUser, g.zLogin)==0;
397400
@ </h3>
398401
if( isPrivate && !g.perm.ModForum && !sameUser ){
@@ -506,11 +509,11 @@
506509
}
507510
if( fpid!=target ){
508511
@ %z(href("%R/forumpost/%S",zUuid))[link]</a>
509512
}
510513
if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
511
- @ %z(href("%R/forumpost/%S?raw",p->zUuid))[source]</a>
514
+ @ %z(href("%R/forumpost/%S?raw",zUuid))[source]</a>
512515
}
513516
if( p->firt ){
514517
ForumEntry *pIrt = p->pPrev;
515518
while( pIrt && pIrt->fpid!=p->firt ) pIrt = pIrt->pPrev;
516519
if( pIrt ){
517520
--- src/forum.c
+++ src/forum.c
@@ -348,10 +348,11 @@
348 for(p=pThread->pFirst; p; p=p->pNext){
349 char *zDate;
350 Manifest *pPost;
351 int isPrivate; /* True for posts awaiting moderation */
352 int sameUser; /* True if author is also the reader */
 
353
354 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
355 if( pPost==0 ) continue;
356 if( p->fpid==target ){
357 @ <div id="forum%d(p->fpid)" class="forumTime forumSel">
@@ -380,19 +381,21 @@
380 if( pIrt ){
381 @ in reply to %z(href("%R/forumpost/%S?t=c",pIrt->zUuid))\
382 @ %d(pIrt->sid)</a>
383 }
384 }
 
385 if( p->pLeaf ){
386 @ updated by %z(href("%R/forumpost/%S?t=c",p->pLeaf->zUuid))\
387 @ %d(p->pLeaf->sid)</a>
 
388 }
389 if( p->fpid!=target ){
390 @ %z(href("%R/forumpost/%S?t=c",p->zUuid))[link]</a>
391 }
392 if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
393 @ %z(href("%R/forumpost/%S?raw",p->zUuid))[source]</a>
394 }
395 isPrivate = content_is_private(p->fpid);
396 sameUser = notAnon && fossil_strcmp(pPost->zUser, g.zLogin)==0;
397 @ </h3>
398 if( isPrivate && !g.perm.ModForum && !sameUser ){
@@ -506,11 +509,11 @@
506 }
507 if( fpid!=target ){
508 @ %z(href("%R/forumpost/%S",zUuid))[link]</a>
509 }
510 if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
511 @ %z(href("%R/forumpost/%S?raw",p->zUuid))[source]</a>
512 }
513 if( p->firt ){
514 ForumEntry *pIrt = p->pPrev;
515 while( pIrt && pIrt->fpid!=p->firt ) pIrt = pIrt->pPrev;
516 if( pIrt ){
517
--- src/forum.c
+++ src/forum.c
@@ -348,10 +348,11 @@
348 for(p=pThread->pFirst; p; p=p->pNext){
349 char *zDate;
350 Manifest *pPost;
351 int isPrivate; /* True for posts awaiting moderation */
352 int sameUser; /* True if author is also the reader */
353 const char *zUuid;
354
355 pPost = manifest_get(p->fpid, CFTYPE_FORUM, 0);
356 if( pPost==0 ) continue;
357 if( p->fpid==target ){
358 @ <div id="forum%d(p->fpid)" class="forumTime forumSel">
@@ -380,19 +381,21 @@
381 if( pIrt ){
382 @ in reply to %z(href("%R/forumpost/%S?t=c",pIrt->zUuid))\
383 @ %d(pIrt->sid)</a>
384 }
385 }
386 zUuid = p->zUuid;
387 if( p->pLeaf ){
388 @ updated by %z(href("%R/forumpost/%S?t=c",p->pLeaf->zUuid))\
389 @ %d(p->pLeaf->sid)</a>
390 zUuid = p->pLeaf->zUuid;
391 }
392 if( p->fpid!=target ){
393 @ %z(href("%R/forumpost/%S?t=c",zUuid))[link]</a>
394 }
395 if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
396 @ %z(href("%R/forumpost/%S?raw",zUuid))[source]</a>
397 }
398 isPrivate = content_is_private(p->fpid);
399 sameUser = notAnon && fossil_strcmp(pPost->zUser, g.zLogin)==0;
400 @ </h3>
401 if( isPrivate && !g.perm.ModForum && !sameUser ){
@@ -506,11 +509,11 @@
509 }
510 if( fpid!=target ){
511 @ %z(href("%R/forumpost/%S",zUuid))[link]</a>
512 }
513 if( fossil_strcmp(pPost->zMimetype,"text/plain")!=0 ){
514 @ %z(href("%R/forumpost/%S?raw",zUuid))[source]</a>
515 }
516 if( p->firt ){
517 ForumEntry *pIrt = p->pPrev;
518 while( pIrt && pIrt->fpid!=p->firt ) pIrt = pIrt->pPrev;
519 if( pIrt ){
520

Keyboard Shortcuts

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