Fossil SCM

Improved timeline comments for changes to wiki pages.

drh 2020-04-16 21:10 backlink-updates
Commit e1b4ee7938b7eb0071f27074727fc3d0f2a036f71e94d5528bf950a3f75477f7
2 files changed +27 -3 +8 -6
+27 -3
--- src/manifest.c
+++ src/manifest.c
@@ -2246,10 +2246,11 @@
22462246
if( p->type==CFTYPE_WIKI ){
22472247
char *zTag = mprintf("wiki-%s", p->zWikiTitle);
22482248
int tagid = tag_findid(zTag, 1);
22492249
int prior;
22502250
char *zComment;
2251
+ const char *zPrefix;
22512252
int nWiki;
22522253
char zLength[40];
22532254
while( fossil_isspace(p->zWiki[0]) ) p->zWiki++;
22542255
nWiki = strlen(p->zWiki);
22552256
sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki);
@@ -2262,14 +2263,37 @@
22622263
tagid, p->rDate
22632264
);
22642265
if( prior ){
22652266
content_deltify(prior, &rid, 1, 0);
22662267
}
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";
22692272
}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
+ }
22712295
}
22722296
search_doc_touch('w',rid,p->zWikiTitle);
22732297
add_pending_crosslink('w',p->zWikiTitle);
22742298
db_multi_exec(
22752299
"REPLACE INTO event(type,mtime,objid,user,comment,"
22762300
--- 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 @@
365365
search_screen(SRCH_WIKI, 0);
366366
style_footer();
367367
}
368368
369369
/* 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
375377
376378
/*
377379
** Figure out what type of wiki page we are dealing with.
378380
*/
379
-static int wiki_page_type(const char *zPageName){
381
+int wiki_page_type(const char *zPageName){
380382
if( db_get_boolean("wiki-about",1)==0 ){
381383
return WIKITYPE_NORMAL;
382384
}else
383385
if( sqlite3_strglob("checkin/*", zPageName)==0
384386
&& db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8)
385387
--- 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

Keyboard Shortcuts

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