Fossil SCM
Email alerts now show the type of wiki operation (add/edit/remove) for wiki edits and no longer render the magic internal timeline comment prefix character in the alert.
Commit
7fcfa93321c83700ca6cc3e6f4ee393fdd448c5b30a115e280c585136c00366e
Parent
336d83e3437e8d8…
1 file changed
+11
-2
+11
-2
| --- src/alerts.c | ||
| +++ src/alerts.c | ||
| @@ -2274,10 +2274,11 @@ | ||
| 2274 | 2274 | memset(&anchor, 0, sizeof(anchor)); |
| 2275 | 2275 | pLast = &anchor; |
| 2276 | 2276 | *pnEvent = 0; |
| 2277 | 2277 | while( db_step(&q)==SQLITE_ROW ){ |
| 2278 | 2278 | const char *zType = ""; |
| 2279 | + const char *zComment = db_column_text(&q, 2); | |
| 2279 | 2280 | p = fossil_malloc( sizeof(EmailEvent) ); |
| 2280 | 2281 | pLast->pNext = p; |
| 2281 | 2282 | pLast = p; |
| 2282 | 2283 | p->type = db_column_text(&q, 3)[0]; |
| 2283 | 2284 | p->needMod = db_column_int(&q, 4); |
| @@ -2285,18 +2286,26 @@ | ||
| 2285 | 2286 | p->pNext = 0; |
| 2286 | 2287 | switch( p->type ){ |
| 2287 | 2288 | case 'c': zType = "Check-In"; break; |
| 2288 | 2289 | /* case 'f': -- forum posts omitted from this loop. See below */ |
| 2289 | 2290 | case 't': zType = "Ticket Change"; break; |
| 2290 | - case 'w': zType = "Wiki Edit"; break; | |
| 2291 | + case 'w': { | |
| 2292 | + zType = "Wiki Edit"; | |
| 2293 | + switch( zComment ? *zComment : 0 ){ | |
| 2294 | + case ':': ++zComment; break; | |
| 2295 | + case '+': zType = "Wiki Added"; ++zComment; break; | |
| 2296 | + case '-': zType = "Wiki Removed"; ++zComment; break; | |
| 2297 | + } | |
| 2298 | + break; | |
| 2299 | + } | |
| 2291 | 2300 | } |
| 2292 | 2301 | blob_init(&p->hdr, 0, 0); |
| 2293 | 2302 | blob_init(&p->txt, 0, 0); |
| 2294 | 2303 | blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n", |
| 2295 | 2304 | db_column_text(&q,1), |
| 2296 | 2305 | zType, |
| 2297 | - db_column_text(&q, 2), | |
| 2306 | + zComment, | |
| 2298 | 2307 | zUrl, |
| 2299 | 2308 | db_column_text(&q,0) |
| 2300 | 2309 | ); |
| 2301 | 2310 | if( p->needMod ){ |
| 2302 | 2311 | blob_appendf(&p->txt, |
| 2303 | 2312 |
| --- src/alerts.c | |
| +++ src/alerts.c | |
| @@ -2274,10 +2274,11 @@ | |
| 2274 | memset(&anchor, 0, sizeof(anchor)); |
| 2275 | pLast = &anchor; |
| 2276 | *pnEvent = 0; |
| 2277 | while( db_step(&q)==SQLITE_ROW ){ |
| 2278 | const char *zType = ""; |
| 2279 | p = fossil_malloc( sizeof(EmailEvent) ); |
| 2280 | pLast->pNext = p; |
| 2281 | pLast = p; |
| 2282 | p->type = db_column_text(&q, 3)[0]; |
| 2283 | p->needMod = db_column_int(&q, 4); |
| @@ -2285,18 +2286,26 @@ | |
| 2285 | p->pNext = 0; |
| 2286 | switch( p->type ){ |
| 2287 | case 'c': zType = "Check-In"; break; |
| 2288 | /* case 'f': -- forum posts omitted from this loop. See below */ |
| 2289 | case 't': zType = "Ticket Change"; break; |
| 2290 | case 'w': zType = "Wiki Edit"; break; |
| 2291 | } |
| 2292 | blob_init(&p->hdr, 0, 0); |
| 2293 | blob_init(&p->txt, 0, 0); |
| 2294 | blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n", |
| 2295 | db_column_text(&q,1), |
| 2296 | zType, |
| 2297 | db_column_text(&q, 2), |
| 2298 | zUrl, |
| 2299 | db_column_text(&q,0) |
| 2300 | ); |
| 2301 | if( p->needMod ){ |
| 2302 | blob_appendf(&p->txt, |
| 2303 |
| --- src/alerts.c | |
| +++ src/alerts.c | |
| @@ -2274,10 +2274,11 @@ | |
| 2274 | memset(&anchor, 0, sizeof(anchor)); |
| 2275 | pLast = &anchor; |
| 2276 | *pnEvent = 0; |
| 2277 | while( db_step(&q)==SQLITE_ROW ){ |
| 2278 | const char *zType = ""; |
| 2279 | const char *zComment = db_column_text(&q, 2); |
| 2280 | p = fossil_malloc( sizeof(EmailEvent) ); |
| 2281 | pLast->pNext = p; |
| 2282 | pLast = p; |
| 2283 | p->type = db_column_text(&q, 3)[0]; |
| 2284 | p->needMod = db_column_int(&q, 4); |
| @@ -2285,18 +2286,26 @@ | |
| 2286 | p->pNext = 0; |
| 2287 | switch( p->type ){ |
| 2288 | case 'c': zType = "Check-In"; break; |
| 2289 | /* case 'f': -- forum posts omitted from this loop. See below */ |
| 2290 | case 't': zType = "Ticket Change"; break; |
| 2291 | case 'w': { |
| 2292 | zType = "Wiki Edit"; |
| 2293 | switch( zComment ? *zComment : 0 ){ |
| 2294 | case ':': ++zComment; break; |
| 2295 | case '+': zType = "Wiki Added"; ++zComment; break; |
| 2296 | case '-': zType = "Wiki Removed"; ++zComment; break; |
| 2297 | } |
| 2298 | break; |
| 2299 | } |
| 2300 | } |
| 2301 | blob_init(&p->hdr, 0, 0); |
| 2302 | blob_init(&p->txt, 0, 0); |
| 2303 | blob_appendf(&p->txt,"== %s %s ==\n%s\n%s/info/%.20s\n", |
| 2304 | db_column_text(&q,1), |
| 2305 | zType, |
| 2306 | zComment, |
| 2307 | zUrl, |
| 2308 | db_column_text(&q,0) |
| 2309 | ); |
| 2310 | if( p->needMod ){ |
| 2311 | blob_appendf(&p->txt, |
| 2312 |