Fossil SCM
Improved timeline comments for changes to wiki pages.
Commit
e1b4ee7938b7eb0071f27074727fc3d0f2a036f71e94d5528bf950a3f75477f7
Parent
271dcbb2b3d0bf5…
2 files changed
+27
-3
+8
-6
+27
-3
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -2246,10 +2246,11 @@ | ||
| 2246 | 2246 | if( p->type==CFTYPE_WIKI ){ |
| 2247 | 2247 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2248 | 2248 | int tagid = tag_findid(zTag, 1); |
| 2249 | 2249 | int prior; |
| 2250 | 2250 | char *zComment; |
| 2251 | + const char *zPrefix; | |
| 2251 | 2252 | int nWiki; |
| 2252 | 2253 | char zLength[40]; |
| 2253 | 2254 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2254 | 2255 | nWiki = strlen(p->zWiki); |
| 2255 | 2256 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2262,14 +2263,37 @@ | ||
| 2262 | 2263 | tagid, p->rDate |
| 2263 | 2264 | ); |
| 2264 | 2265 | if( prior ){ |
| 2265 | 2266 | content_deltify(prior, &rid, 1, 0); |
| 2266 | 2267 | } |
| 2267 | - if( nWiki>0 ){ | |
| 2268 | - zComment = mprintf("Changes to wiki page [%h]", p->zWikiTitle); | |
| 2268 | + if( nWiki<=0 ){ | |
| 2269 | + zPrefix = "Deleted"; | |
| 2270 | + }else if( !prior ){ | |
| 2271 | + zPrefix = "Added"; | |
| 2269 | 2272 | }else{ |
| 2270 | - zComment = mprintf("Deleted wiki page [%h]", p->zWikiTitle); | |
| 2273 | + zPrefix = "Changes to"; | |
| 2274 | + } | |
| 2275 | + switch( wiki_page_type(p->zWikiTitle) ){ | |
| 2276 | + case WIKITYPE_CHECKIN: { | |
| 2277 | + zComment = mprintf("%s wiki for check-in [%S]", zPrefix, | |
| 2278 | + p->zWikiTitle+8); | |
| 2279 | + break; | |
| 2280 | + } | |
| 2281 | + case WIKITYPE_BRANCH: { | |
| 2282 | + zComment = mprintf("%s wiki for branch [/timeline?r=%t|%h]", | |
| 2283 | + zPrefix, p->zWikiTitle+7, p->zWikiTitle+7); | |
| 2284 | + break; | |
| 2285 | + } | |
| 2286 | + case WIKITYPE_TAG: { | |
| 2287 | + zComment = mprintf("%s wiki for tag [/timeline?t=%t|%h]", | |
| 2288 | + zPrefix, p->zWikiTitle+4, p->zWikiTitle+4); | |
| 2289 | + break; | |
| 2290 | + } | |
| 2291 | + default: { | |
| 2292 | + zComment = mprintf("%s wiki page [%h]", zPrefix, p->zWikiTitle); | |
| 2293 | + break; | |
| 2294 | + } | |
| 2271 | 2295 | } |
| 2272 | 2296 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2273 | 2297 | add_pending_crosslink('w',p->zWikiTitle); |
| 2274 | 2298 | db_multi_exec( |
| 2275 | 2299 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2276 | 2300 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -2246,10 +2246,11 @@ | |
| 2246 | if( p->type==CFTYPE_WIKI ){ |
| 2247 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2248 | int tagid = tag_findid(zTag, 1); |
| 2249 | int prior; |
| 2250 | char *zComment; |
| 2251 | int nWiki; |
| 2252 | char zLength[40]; |
| 2253 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2254 | nWiki = strlen(p->zWiki); |
| 2255 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2262,14 +2263,37 @@ | |
| 2262 | tagid, p->rDate |
| 2263 | ); |
| 2264 | if( prior ){ |
| 2265 | content_deltify(prior, &rid, 1, 0); |
| 2266 | } |
| 2267 | if( nWiki>0 ){ |
| 2268 | zComment = mprintf("Changes to wiki page [%h]", p->zWikiTitle); |
| 2269 | }else{ |
| 2270 | zComment = mprintf("Deleted wiki page [%h]", p->zWikiTitle); |
| 2271 | } |
| 2272 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2273 | add_pending_crosslink('w',p->zWikiTitle); |
| 2274 | db_multi_exec( |
| 2275 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2276 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -2246,10 +2246,11 @@ | |
| 2246 | if( p->type==CFTYPE_WIKI ){ |
| 2247 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2248 | int tagid = tag_findid(zTag, 1); |
| 2249 | int prior; |
| 2250 | char *zComment; |
| 2251 | const char *zPrefix; |
| 2252 | int nWiki; |
| 2253 | char zLength[40]; |
| 2254 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2255 | nWiki = strlen(p->zWiki); |
| 2256 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2262,14 +2263,37 @@ | |
| 2263 | tagid, p->rDate |
| 2264 | ); |
| 2265 | if( prior ){ |
| 2266 | content_deltify(prior, &rid, 1, 0); |
| 2267 | } |
| 2268 | if( nWiki<=0 ){ |
| 2269 | zPrefix = "Deleted"; |
| 2270 | }else if( !prior ){ |
| 2271 | zPrefix = "Added"; |
| 2272 | }else{ |
| 2273 | zPrefix = "Changes to"; |
| 2274 | } |
| 2275 | switch( wiki_page_type(p->zWikiTitle) ){ |
| 2276 | case WIKITYPE_CHECKIN: { |
| 2277 | zComment = mprintf("%s wiki for check-in [%S]", zPrefix, |
| 2278 | p->zWikiTitle+8); |
| 2279 | break; |
| 2280 | } |
| 2281 | case WIKITYPE_BRANCH: { |
| 2282 | zComment = mprintf("%s wiki for branch [/timeline?r=%t|%h]", |
| 2283 | zPrefix, p->zWikiTitle+7, p->zWikiTitle+7); |
| 2284 | break; |
| 2285 | } |
| 2286 | case WIKITYPE_TAG: { |
| 2287 | zComment = mprintf("%s wiki for tag [/timeline?t=%t|%h]", |
| 2288 | zPrefix, p->zWikiTitle+4, p->zWikiTitle+4); |
| 2289 | break; |
| 2290 | } |
| 2291 | default: { |
| 2292 | zComment = mprintf("%s wiki page [%h]", zPrefix, p->zWikiTitle); |
| 2293 | break; |
| 2294 | } |
| 2295 | } |
| 2296 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2297 | add_pending_crosslink('w',p->zWikiTitle); |
| 2298 | db_multi_exec( |
| 2299 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2300 |
+8
-6
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -365,20 +365,22 @@ | ||
| 365 | 365 | search_screen(SRCH_WIKI, 0); |
| 366 | 366 | style_footer(); |
| 367 | 367 | } |
| 368 | 368 | |
| 369 | 369 | /* Return values from wiki_page_type() */ |
| 370 | -#define WIKITYPE_UNKNOWN (-1) | |
| 371 | -#define WIKITYPE_NORMAL 0 | |
| 372 | -#define WIKITYPE_BRANCH 1 | |
| 373 | -#define WIKITYPE_CHECKIN 2 | |
| 374 | -#define WIKITYPE_TAG 3 | |
| 370 | +#if INTERFACE | |
| 371 | +# define WIKITYPE_UNKNOWN (-1) | |
| 372 | +# define WIKITYPE_NORMAL 0 | |
| 373 | +# define WIKITYPE_BRANCH 1 | |
| 374 | +# define WIKITYPE_CHECKIN 2 | |
| 375 | +# define WIKITYPE_TAG 3 | |
| 376 | +#endif | |
| 375 | 377 | |
| 376 | 378 | /* |
| 377 | 379 | ** Figure out what type of wiki page we are dealing with. |
| 378 | 380 | */ |
| 379 | -static int wiki_page_type(const char *zPageName){ | |
| 381 | +int wiki_page_type(const char *zPageName){ | |
| 380 | 382 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 381 | 383 | return WIKITYPE_NORMAL; |
| 382 | 384 | }else |
| 383 | 385 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 384 | 386 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 385 | 387 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -365,20 +365,22 @@ | |
| 365 | search_screen(SRCH_WIKI, 0); |
| 366 | style_footer(); |
| 367 | } |
| 368 | |
| 369 | /* Return values from wiki_page_type() */ |
| 370 | #define WIKITYPE_UNKNOWN (-1) |
| 371 | #define WIKITYPE_NORMAL 0 |
| 372 | #define WIKITYPE_BRANCH 1 |
| 373 | #define WIKITYPE_CHECKIN 2 |
| 374 | #define WIKITYPE_TAG 3 |
| 375 | |
| 376 | /* |
| 377 | ** Figure out what type of wiki page we are dealing with. |
| 378 | */ |
| 379 | static int wiki_page_type(const char *zPageName){ |
| 380 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 381 | return WIKITYPE_NORMAL; |
| 382 | }else |
| 383 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 384 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 385 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -365,20 +365,22 @@ | |
| 365 | search_screen(SRCH_WIKI, 0); |
| 366 | style_footer(); |
| 367 | } |
| 368 | |
| 369 | /* Return values from wiki_page_type() */ |
| 370 | #if INTERFACE |
| 371 | # define WIKITYPE_UNKNOWN (-1) |
| 372 | # define WIKITYPE_NORMAL 0 |
| 373 | # define WIKITYPE_BRANCH 1 |
| 374 | # define WIKITYPE_CHECKIN 2 |
| 375 | # define WIKITYPE_TAG 3 |
| 376 | #endif |
| 377 | |
| 378 | /* |
| 379 | ** Figure out what type of wiki page we are dealing with. |
| 380 | */ |
| 381 | int wiki_page_type(const char *zPageName){ |
| 382 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 383 | return WIKITYPE_NORMAL; |
| 384 | }else |
| 385 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 386 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 387 |