33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
-
|
** a reply.
*/
struct ForumEntry {
int fpid; /* rid for this entry */
int fprev; /* zero if initial entry. non-zero if an edit */
int firt; /* This entry replies to firt */
int mfirt; /* Root in-reply-to */
int nReply; /* Number of replies to this entry */
int sid; /* Serial ID number */
char *zUuid; /* Artifact hash */
ForumEntry *pEditHead; /* Original, unedited entry */
ForumEntry *pEditTail; /* Most recent edit for this entry */
ForumEntry *pEditNext; /* This entry is edited by pEditNext */
ForumEntry *pEditPrev; /* This entry is an edit of pEditPrev */
ForumEntry *pNext; /* Next in chronological order */
|
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-
|
for(p=pBase->pNext; p; p=p->pNext){
if( p->fprev==0 && p->mfirt==pBase->fpid ){
if( pPrev ){
pPrev->nIndent = pBase->nIndent + 1;
forumentry_add_to_display(pThread, pPrev);
forumthread_display_order(pThread, pPrev);
}
pBase->nReply++;
pPrev = p;
}
}
if( pPrev ){
pPrev->nIndent = pBase->nIndent + 1;
if( pPrev->nIndent>pThread->mxIndent ) pThread->mxIndent = pPrev->nIndent;
forumentry_add_to_display(pThread, pPrev);
|
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
|
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
|
-
+
-
+
-
+
|
fossil_print("fpid = %d\n", fpid);
fossil_print("froot = %d\n", froot);
pThread = forumthread_create(froot, 1);
fossil_print("Chronological:\n");
fossil_print(
/* 0 1 2 3 4 5 6 7 */
/* 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123 */
" sid fpid firt fprev mfirt pEditTail nReply hash\n");
" sid fpid firt fprev mfirt pEditTail hash\n");
for(p=pThread->pFirst; p; p=p->pNext){
fossil_print("%4d %9d %9d %9d %11d %9d %6d %8.8s\n", p->sid,
fossil_print("%4d %9d %9d %9d %9d %9d %8.8s\n", p->sid,
p->fpid, p->firt, p->fprev, p->mfirt,
p->pEditTail ? p->pEditTail->fpid : 0, p->nReply, p->zUuid);
p->pEditTail ? p->pEditTail->fpid : 0, p->zUuid);
}
fossil_print("\nDisplay\n");
for(p=pThread->pDisplay; p; p=p->pDisplay){
fossil_print("%*s", (p->nIndent-1)*3, "");
if( p->pEditTail ){
fossil_print("%d->%d\n", p->fpid, p->pEditTail->fpid);
}else{
|
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
|
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
|
-
+
-
|
/* Undocumented "threadtable" query parameter causes thread table
** to be displayed for debugging purposes.
*/
if( PB("threadtable") ){
@ <hr>
@ <table border="1" cellpadding="3" cellspacing="0">
@ <tr><th>sid<th>fpid<th>firt<th>fprev<th>mfirt<th>pEditHead<th>pEditTail\
@ <th>pEditNext<th>pEditPrev<th>nReply<th>hash
@ <th>pEditNext<th>pEditPrev<th>hash
for(p=pThread->pFirst; p; p=p->pNext){
@ <tr><td>%d(p->sid)<td>%d(p->fpid)<td>%d(p->firt)\
@ <td>%d(p->fprev)<td>%d(p->mfirt)\
@ <td>%d(p->pEditHead?p->pEditHead->fpid:0)\
@ <td>%d(p->pEditTail?p->pEditTail->fpid:0)\
@ <td>%d(p->pEditNext?p->pEditNext->fpid:0)\
@ <td>%d(p->pEditPrev?p->pEditPrev->fpid:0)\
@ <td>%d(p->nReply)\
@ <td>%S(p->zUuid)</tr>
}
@ </table>
}
forumthread_delete(pThread);
}
|