Fossil SCM
3 minor violations against html5
Commit
c5e08c3fa86ce61751f8b404b55fb1f6d3724fba
Parent
90e928deeaa82ae…
1 file changed
+16
-16
+16
-16
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -287,11 +287,11 @@ | ||
| 287 | 287 | @ <td class="timelineGraph"> |
| 288 | 288 | if( tmFlags & TIMELINE_UCOLOR ) zBgClr = zUser ? hash_color(zUser) : 0; |
| 289 | 289 | if( zType[0]=='c' |
| 290 | 290 | && (pGraph || zBgClr==0 || (tmFlags & TIMELINE_BRCOLOR)!=0) |
| 291 | 291 | ){ |
| 292 | - db_reset(&qbranch); | |
| 292 | + db_reset(&qbranch); | |
| 293 | 293 | db_bind_int(&qbranch, ":rid", rid); |
| 294 | 294 | if( db_step(&qbranch)==SQLITE_ROW ){ |
| 295 | 295 | zBr = db_column_text(&qbranch, 0); |
| 296 | 296 | }else{ |
| 297 | 297 | zBr = "trunk"; |
| @@ -373,11 +373,11 @@ | ||
| 373 | 373 | /* Generate the "user: USERNAME" at the end of the comment, together |
| 374 | 374 | ** with a hyperlink to another timeline for that user. |
| 375 | 375 | */ |
| 376 | 376 | if( zTagList && zTagList[0]==0 ) zTagList = 0; |
| 377 | 377 | if( g.perm.Hyperlink && fossil_strcmp(zUser, zThisUser)!=0 ){ |
| 378 | - char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd", zUser, zDate); | |
| 378 | + char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd", zUser, zDate); | |
| 379 | 379 | @ (user: %z(href("%z",zLink))%h(zUser)</a>%s(zTagList?",":"\051") |
| 380 | 380 | }else{ |
| 381 | 381 | @ (user: %h(zUser)%s(zTagList?",":"\051") |
| 382 | 382 | } |
| 383 | 383 | |
| @@ -398,11 +398,11 @@ | ||
| 398 | 398 | while( z && z[0] ){ |
| 399 | 399 | for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){} |
| 400 | 400 | if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){ |
| 401 | 401 | blob_appendf(&links, |
| 402 | 402 | "%z%#h</a>%.2s", |
| 403 | - href("%R/timeline?r=%#t&nd&c=%s",i,z,zDate), i,z, &z[i] | |
| 403 | + href("%R/timeline?r=%#t&nd&c=%t",i,z,zDate), i,z, &z[i] | |
| 404 | 404 | ); |
| 405 | 405 | }else{ |
| 406 | 406 | blob_appendf(&links, "%#h", i+2, z); |
| 407 | 407 | } |
| 408 | 408 | if( z[i]==0 ) break; |
| @@ -423,11 +423,11 @@ | ||
| 423 | 423 | |
| 424 | 424 | /* Generate the file-change list if requested */ |
| 425 | 425 | if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' && g.perm.Hyperlink ){ |
| 426 | 426 | int inUl = 0; |
| 427 | 427 | if( !fchngQueryInit ){ |
| 428 | - db_prepare(&fchngQuery, | |
| 428 | + db_prepare(&fchngQuery, | |
| 429 | 429 | "SELECT (pid==0) AS isnew," |
| 430 | 430 | " (fid==0) AS isdel," |
| 431 | 431 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 432 | 432 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 433 | 433 | " (SELECT uuid FROM blob WHERE rid=pid)," |
| @@ -492,11 +492,11 @@ | ||
| 492 | 492 | pGraph = 0; |
| 493 | 493 | }else{ |
| 494 | 494 | /* style is not moved to css, because this is |
| 495 | 495 | ** a technical div for the timeline graph |
| 496 | 496 | */ |
| 497 | - @ <tr><td /><td> | |
| 497 | + @ <tr><td></td><td> | |
| 498 | 498 | @ <div id="grbtm" style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| 499 | 499 | @ </td></tr> |
| 500 | 500 | } |
| 501 | 501 | } |
| 502 | 502 | @ </table> |
| @@ -661,11 +661,11 @@ | ||
| 661 | 661 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 662 | 662 | if( !omitDescenders ){ |
| 663 | 663 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 664 | 664 | @ if( p.f&1 ) drawBox("black",p.x-1,p.y-1,p.x+2,p.y+2); |
| 665 | 665 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 666 | - } | |
| 666 | + } | |
| 667 | 667 | @ if( p.mo>0 ){ |
| 668 | 668 | @ var x1 = p.mo + left - 1; |
| 669 | 669 | @ var y1 = p.y-3; |
| 670 | 670 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 671 | 671 | @ var u = rowinfo[p.mu-1]; |
| @@ -766,11 +766,11 @@ | ||
| 766 | 766 | |
| 767 | 767 | /* |
| 768 | 768 | ** Create a temporary table suitable for storing timeline data. |
| 769 | 769 | */ |
| 770 | 770 | static void timeline_temp_table(void){ |
| 771 | - static const char zSql[] = | |
| 771 | + static const char zSql[] = | |
| 772 | 772 | @ CREATE TEMP TABLE IF NOT EXISTS timeline( |
| 773 | 773 | @ rid INTEGER PRIMARY KEY, |
| 774 | 774 | @ uuid TEXT, |
| 775 | 775 | @ timestamp TEXT, |
| 776 | 776 | @ comment TEXT, |
| @@ -807,11 +807,11 @@ | ||
| 807 | 807 | @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid |
| 808 | 808 | @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) AS tags, |
| 809 | 809 | @ tagid AS tagid, |
| 810 | 810 | @ brief AS brief, |
| 811 | 811 | @ event.mtime AS mtime |
| 812 | - @ FROM event CROSS JOIN blob | |
| 812 | + @ FROM event CROSS JOIN blob | |
| 813 | 813 | @ WHERE blob.rid=event.objid |
| 814 | 814 | ; |
| 815 | 815 | if( zBase==0 ){ |
| 816 | 816 | zBase = mprintf(zBaseSql, TAG_BRANCH, TAG_BRANCH); |
| 817 | 817 | } |
| @@ -1175,24 +1175,24 @@ | ||
| 1175 | 1175 | rBefore = symbolic_name_to_mtime(zBefore); |
| 1176 | 1176 | rAfter = symbolic_name_to_mtime(zAfter); |
| 1177 | 1177 | rCirca = symbolic_name_to_mtime(zCirca); |
| 1178 | 1178 | if( rAfter>0.0 ){ |
| 1179 | 1179 | if( rBefore>0.0 ){ |
| 1180 | - blob_appendf(&sql, | |
| 1180 | + blob_appendf(&sql, | |
| 1181 | 1181 | " AND event.mtime>=%.17g AND event.mtime<=%.17g" |
| 1182 | 1182 | " ORDER BY event.mtime ASC", rAfter-ONE_SECOND, rBefore+ONE_SECOND); |
| 1183 | 1183 | url_add_parameter(&url, "a", zAfter); |
| 1184 | 1184 | url_add_parameter(&url, "b", zBefore); |
| 1185 | 1185 | nEntry = 1000000; |
| 1186 | 1186 | }else{ |
| 1187 | - blob_appendf(&sql, | |
| 1187 | + blob_appendf(&sql, | |
| 1188 | 1188 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1189 | 1189 | rAfter-ONE_SECOND); |
| 1190 | 1190 | url_add_parameter(&url, "a", zAfter); |
| 1191 | 1191 | } |
| 1192 | 1192 | }else if( rBefore>0.0 ){ |
| 1193 | - blob_appendf(&sql, | |
| 1193 | + blob_appendf(&sql, | |
| 1194 | 1194 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1195 | 1195 | rBefore+ONE_SECOND); |
| 1196 | 1196 | url_add_parameter(&url, "b", zBefore); |
| 1197 | 1197 | }else if( rCirca>0.0 ){ |
| 1198 | 1198 | Blob sql2; |
| @@ -1308,11 +1308,11 @@ | ||
| 1308 | 1308 | /* |
| 1309 | 1309 | ** The input query q selects various records. Print a human-readable |
| 1310 | 1310 | ** summary of those records. |
| 1311 | 1311 | ** |
| 1312 | 1312 | ** Limit the number of entries printed to nLine. |
| 1313 | -** | |
| 1313 | +** | |
| 1314 | 1314 | ** The query should return these columns: |
| 1315 | 1315 | ** |
| 1316 | 1316 | ** 0. rid |
| 1317 | 1317 | ** 1. uuid |
| 1318 | 1318 | ** 2. Date/Time |
| @@ -1342,11 +1342,11 @@ | ||
| 1342 | 1342 | int nParent = db_column_int(q, 5); |
| 1343 | 1343 | char *zFree = 0; |
| 1344 | 1344 | int n = 0; |
| 1345 | 1345 | char zPrefix[80]; |
| 1346 | 1346 | char zUuid[UUID_SIZE+1]; |
| 1347 | - | |
| 1347 | + | |
| 1348 | 1348 | sqlite3_snprintf(sizeof(zUuid), zUuid, "%.10s", zId); |
| 1349 | 1349 | if( memcmp(zDate, zPrevDate, 10) ){ |
| 1350 | 1350 | fossil_print("=== %.10s ===\n", zDate); |
| 1351 | 1351 | memcpy(zPrevDate, zDate, 10); |
| 1352 | 1352 | nLine++; |
| @@ -1376,11 +1376,11 @@ | ||
| 1376 | 1376 | nLine += comment_print(zFree, 9, 79); |
| 1377 | 1377 | sqlite3_free(zFree); |
| 1378 | 1378 | |
| 1379 | 1379 | if(showfiles){ |
| 1380 | 1380 | if( !fchngQueryInit ){ |
| 1381 | - db_prepare(&fchngQuery, | |
| 1381 | + db_prepare(&fchngQuery, | |
| 1382 | 1382 | "SELECT (pid==0) AS isnew," |
| 1383 | 1383 | " (fid==0) AS isdel," |
| 1384 | 1384 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 1385 | 1385 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 1386 | 1386 | " (SELECT uuid FROM blob WHERE rid=pid)" |
| @@ -1393,11 +1393,11 @@ | ||
| 1393 | 1393 | db_bind_int(&fchngQuery, ":mid", rid); |
| 1394 | 1394 | while( db_step(&fchngQuery)==SQLITE_ROW ){ |
| 1395 | 1395 | const char *zFilename = db_column_text(&fchngQuery, 2); |
| 1396 | 1396 | int isNew = db_column_int(&fchngQuery, 0); |
| 1397 | 1397 | int isDel = db_column_int(&fchngQuery, 1); |
| 1398 | - if( isNew ){ | |
| 1398 | + if( isNew ){ | |
| 1399 | 1399 | fossil_print(" ADDED %s\n",zFilename); |
| 1400 | 1400 | }else if( isDel ){ |
| 1401 | 1401 | fossil_print(" DELETED %s\n",zFilename); |
| 1402 | 1402 | }else{ |
| 1403 | 1403 | fossil_print(" EDITED %s\n", zFilename); |
| @@ -1412,11 +1412,11 @@ | ||
| 1412 | 1412 | /* |
| 1413 | 1413 | ** Return a pointer to a static string that forms the basis for |
| 1414 | 1414 | ** a timeline query for display on a TTY. |
| 1415 | 1415 | */ |
| 1416 | 1416 | const char *timeline_query_for_tty(void){ |
| 1417 | - static const char zBaseSql[] = | |
| 1417 | + static const char zBaseSql[] = | |
| 1418 | 1418 | @ SELECT |
| 1419 | 1419 | @ blob.rid AS rid, |
| 1420 | 1420 | @ uuid, |
| 1421 | 1421 | @ datetime(event.mtime,'localtime') AS mDateTime, |
| 1422 | 1422 | @ coalesce(ecomment,comment) |
| 1423 | 1423 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -287,11 +287,11 @@ | |
| 287 | @ <td class="timelineGraph"> |
| 288 | if( tmFlags & TIMELINE_UCOLOR ) zBgClr = zUser ? hash_color(zUser) : 0; |
| 289 | if( zType[0]=='c' |
| 290 | && (pGraph || zBgClr==0 || (tmFlags & TIMELINE_BRCOLOR)!=0) |
| 291 | ){ |
| 292 | db_reset(&qbranch); |
| 293 | db_bind_int(&qbranch, ":rid", rid); |
| 294 | if( db_step(&qbranch)==SQLITE_ROW ){ |
| 295 | zBr = db_column_text(&qbranch, 0); |
| 296 | }else{ |
| 297 | zBr = "trunk"; |
| @@ -373,11 +373,11 @@ | |
| 373 | /* Generate the "user: USERNAME" at the end of the comment, together |
| 374 | ** with a hyperlink to another timeline for that user. |
| 375 | */ |
| 376 | if( zTagList && zTagList[0]==0 ) zTagList = 0; |
| 377 | if( g.perm.Hyperlink && fossil_strcmp(zUser, zThisUser)!=0 ){ |
| 378 | char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd", zUser, zDate); |
| 379 | @ (user: %z(href("%z",zLink))%h(zUser)</a>%s(zTagList?",":"\051") |
| 380 | }else{ |
| 381 | @ (user: %h(zUser)%s(zTagList?",":"\051") |
| 382 | } |
| 383 | |
| @@ -398,11 +398,11 @@ | |
| 398 | while( z && z[0] ){ |
| 399 | for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){} |
| 400 | if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){ |
| 401 | blob_appendf(&links, |
| 402 | "%z%#h</a>%.2s", |
| 403 | href("%R/timeline?r=%#t&nd&c=%s",i,z,zDate), i,z, &z[i] |
| 404 | ); |
| 405 | }else{ |
| 406 | blob_appendf(&links, "%#h", i+2, z); |
| 407 | } |
| 408 | if( z[i]==0 ) break; |
| @@ -423,11 +423,11 @@ | |
| 423 | |
| 424 | /* Generate the file-change list if requested */ |
| 425 | if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' && g.perm.Hyperlink ){ |
| 426 | int inUl = 0; |
| 427 | if( !fchngQueryInit ){ |
| 428 | db_prepare(&fchngQuery, |
| 429 | "SELECT (pid==0) AS isnew," |
| 430 | " (fid==0) AS isdel," |
| 431 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 432 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 433 | " (SELECT uuid FROM blob WHERE rid=pid)," |
| @@ -492,11 +492,11 @@ | |
| 492 | pGraph = 0; |
| 493 | }else{ |
| 494 | /* style is not moved to css, because this is |
| 495 | ** a technical div for the timeline graph |
| 496 | */ |
| 497 | @ <tr><td /><td> |
| 498 | @ <div id="grbtm" style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| 499 | @ </td></tr> |
| 500 | } |
| 501 | } |
| 502 | @ </table> |
| @@ -661,11 +661,11 @@ | |
| 661 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 662 | if( !omitDescenders ){ |
| 663 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 664 | @ if( p.f&1 ) drawBox("black",p.x-1,p.y-1,p.x+2,p.y+2); |
| 665 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 666 | } |
| 667 | @ if( p.mo>0 ){ |
| 668 | @ var x1 = p.mo + left - 1; |
| 669 | @ var y1 = p.y-3; |
| 670 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 671 | @ var u = rowinfo[p.mu-1]; |
| @@ -766,11 +766,11 @@ | |
| 766 | |
| 767 | /* |
| 768 | ** Create a temporary table suitable for storing timeline data. |
| 769 | */ |
| 770 | static void timeline_temp_table(void){ |
| 771 | static const char zSql[] = |
| 772 | @ CREATE TEMP TABLE IF NOT EXISTS timeline( |
| 773 | @ rid INTEGER PRIMARY KEY, |
| 774 | @ uuid TEXT, |
| 775 | @ timestamp TEXT, |
| 776 | @ comment TEXT, |
| @@ -807,11 +807,11 @@ | |
| 807 | @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid |
| 808 | @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) AS tags, |
| 809 | @ tagid AS tagid, |
| 810 | @ brief AS brief, |
| 811 | @ event.mtime AS mtime |
| 812 | @ FROM event CROSS JOIN blob |
| 813 | @ WHERE blob.rid=event.objid |
| 814 | ; |
| 815 | if( zBase==0 ){ |
| 816 | zBase = mprintf(zBaseSql, TAG_BRANCH, TAG_BRANCH); |
| 817 | } |
| @@ -1175,24 +1175,24 @@ | |
| 1175 | rBefore = symbolic_name_to_mtime(zBefore); |
| 1176 | rAfter = symbolic_name_to_mtime(zAfter); |
| 1177 | rCirca = symbolic_name_to_mtime(zCirca); |
| 1178 | if( rAfter>0.0 ){ |
| 1179 | if( rBefore>0.0 ){ |
| 1180 | blob_appendf(&sql, |
| 1181 | " AND event.mtime>=%.17g AND event.mtime<=%.17g" |
| 1182 | " ORDER BY event.mtime ASC", rAfter-ONE_SECOND, rBefore+ONE_SECOND); |
| 1183 | url_add_parameter(&url, "a", zAfter); |
| 1184 | url_add_parameter(&url, "b", zBefore); |
| 1185 | nEntry = 1000000; |
| 1186 | }else{ |
| 1187 | blob_appendf(&sql, |
| 1188 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1189 | rAfter-ONE_SECOND); |
| 1190 | url_add_parameter(&url, "a", zAfter); |
| 1191 | } |
| 1192 | }else if( rBefore>0.0 ){ |
| 1193 | blob_appendf(&sql, |
| 1194 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1195 | rBefore+ONE_SECOND); |
| 1196 | url_add_parameter(&url, "b", zBefore); |
| 1197 | }else if( rCirca>0.0 ){ |
| 1198 | Blob sql2; |
| @@ -1308,11 +1308,11 @@ | |
| 1308 | /* |
| 1309 | ** The input query q selects various records. Print a human-readable |
| 1310 | ** summary of those records. |
| 1311 | ** |
| 1312 | ** Limit the number of entries printed to nLine. |
| 1313 | ** |
| 1314 | ** The query should return these columns: |
| 1315 | ** |
| 1316 | ** 0. rid |
| 1317 | ** 1. uuid |
| 1318 | ** 2. Date/Time |
| @@ -1342,11 +1342,11 @@ | |
| 1342 | int nParent = db_column_int(q, 5); |
| 1343 | char *zFree = 0; |
| 1344 | int n = 0; |
| 1345 | char zPrefix[80]; |
| 1346 | char zUuid[UUID_SIZE+1]; |
| 1347 | |
| 1348 | sqlite3_snprintf(sizeof(zUuid), zUuid, "%.10s", zId); |
| 1349 | if( memcmp(zDate, zPrevDate, 10) ){ |
| 1350 | fossil_print("=== %.10s ===\n", zDate); |
| 1351 | memcpy(zPrevDate, zDate, 10); |
| 1352 | nLine++; |
| @@ -1376,11 +1376,11 @@ | |
| 1376 | nLine += comment_print(zFree, 9, 79); |
| 1377 | sqlite3_free(zFree); |
| 1378 | |
| 1379 | if(showfiles){ |
| 1380 | if( !fchngQueryInit ){ |
| 1381 | db_prepare(&fchngQuery, |
| 1382 | "SELECT (pid==0) AS isnew," |
| 1383 | " (fid==0) AS isdel," |
| 1384 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 1385 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 1386 | " (SELECT uuid FROM blob WHERE rid=pid)" |
| @@ -1393,11 +1393,11 @@ | |
| 1393 | db_bind_int(&fchngQuery, ":mid", rid); |
| 1394 | while( db_step(&fchngQuery)==SQLITE_ROW ){ |
| 1395 | const char *zFilename = db_column_text(&fchngQuery, 2); |
| 1396 | int isNew = db_column_int(&fchngQuery, 0); |
| 1397 | int isDel = db_column_int(&fchngQuery, 1); |
| 1398 | if( isNew ){ |
| 1399 | fossil_print(" ADDED %s\n",zFilename); |
| 1400 | }else if( isDel ){ |
| 1401 | fossil_print(" DELETED %s\n",zFilename); |
| 1402 | }else{ |
| 1403 | fossil_print(" EDITED %s\n", zFilename); |
| @@ -1412,11 +1412,11 @@ | |
| 1412 | /* |
| 1413 | ** Return a pointer to a static string that forms the basis for |
| 1414 | ** a timeline query for display on a TTY. |
| 1415 | */ |
| 1416 | const char *timeline_query_for_tty(void){ |
| 1417 | static const char zBaseSql[] = |
| 1418 | @ SELECT |
| 1419 | @ blob.rid AS rid, |
| 1420 | @ uuid, |
| 1421 | @ datetime(event.mtime,'localtime') AS mDateTime, |
| 1422 | @ coalesce(ecomment,comment) |
| 1423 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -287,11 +287,11 @@ | |
| 287 | @ <td class="timelineGraph"> |
| 288 | if( tmFlags & TIMELINE_UCOLOR ) zBgClr = zUser ? hash_color(zUser) : 0; |
| 289 | if( zType[0]=='c' |
| 290 | && (pGraph || zBgClr==0 || (tmFlags & TIMELINE_BRCOLOR)!=0) |
| 291 | ){ |
| 292 | db_reset(&qbranch); |
| 293 | db_bind_int(&qbranch, ":rid", rid); |
| 294 | if( db_step(&qbranch)==SQLITE_ROW ){ |
| 295 | zBr = db_column_text(&qbranch, 0); |
| 296 | }else{ |
| 297 | zBr = "trunk"; |
| @@ -373,11 +373,11 @@ | |
| 373 | /* Generate the "user: USERNAME" at the end of the comment, together |
| 374 | ** with a hyperlink to another timeline for that user. |
| 375 | */ |
| 376 | if( zTagList && zTagList[0]==0 ) zTagList = 0; |
| 377 | if( g.perm.Hyperlink && fossil_strcmp(zUser, zThisUser)!=0 ){ |
| 378 | char *zLink = mprintf("%R/timeline?u=%h&c=%t&nd", zUser, zDate); |
| 379 | @ (user: %z(href("%z",zLink))%h(zUser)</a>%s(zTagList?",":"\051") |
| 380 | }else{ |
| 381 | @ (user: %h(zUser)%s(zTagList?",":"\051") |
| 382 | } |
| 383 | |
| @@ -398,11 +398,11 @@ | |
| 398 | while( z && z[0] ){ |
| 399 | for(i=0; z[i] && (z[i]!=',' || z[i+1]!=' '); i++){} |
| 400 | if( zThisTag==0 || memcmp(z, zThisTag, i)!=0 || zThisTag[i]!=0 ){ |
| 401 | blob_appendf(&links, |
| 402 | "%z%#h</a>%.2s", |
| 403 | href("%R/timeline?r=%#t&nd&c=%t",i,z,zDate), i,z, &z[i] |
| 404 | ); |
| 405 | }else{ |
| 406 | blob_appendf(&links, "%#h", i+2, z); |
| 407 | } |
| 408 | if( z[i]==0 ) break; |
| @@ -423,11 +423,11 @@ | |
| 423 | |
| 424 | /* Generate the file-change list if requested */ |
| 425 | if( (tmFlags & TIMELINE_FCHANGES)!=0 && zType[0]=='c' && g.perm.Hyperlink ){ |
| 426 | int inUl = 0; |
| 427 | if( !fchngQueryInit ){ |
| 428 | db_prepare(&fchngQuery, |
| 429 | "SELECT (pid==0) AS isnew," |
| 430 | " (fid==0) AS isdel," |
| 431 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 432 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 433 | " (SELECT uuid FROM blob WHERE rid=pid)," |
| @@ -492,11 +492,11 @@ | |
| 492 | pGraph = 0; |
| 493 | }else{ |
| 494 | /* style is not moved to css, because this is |
| 495 | ** a technical div for the timeline graph |
| 496 | */ |
| 497 | @ <tr><td></td><td> |
| 498 | @ <div id="grbtm" style="width:%d(pGraph->mxRail*20+30)px;"></div> |
| 499 | @ </td></tr> |
| 500 | } |
| 501 | } |
| 502 | @ </table> |
| @@ -661,11 +661,11 @@ | |
| 661 | @ if( p.u>0 ) drawUpArrow(p.x, rowinfo[p.u-1].y+6, p.y-5); |
| 662 | if( !omitDescenders ){ |
| 663 | @ if( p.u==0 ) drawUpArrow(p.x, 0, p.y-5); |
| 664 | @ if( p.f&1 ) drawBox("black",p.x-1,p.y-1,p.x+2,p.y+2); |
| 665 | @ if( p.d ) drawUpArrow(p.x, p.y+6, btm); |
| 666 | } |
| 667 | @ if( p.mo>0 ){ |
| 668 | @ var x1 = p.mo + left - 1; |
| 669 | @ var y1 = p.y-3; |
| 670 | @ var x0 = x1>p.x ? p.x+7 : p.x-6; |
| 671 | @ var u = rowinfo[p.mu-1]; |
| @@ -766,11 +766,11 @@ | |
| 766 | |
| 767 | /* |
| 768 | ** Create a temporary table suitable for storing timeline data. |
| 769 | */ |
| 770 | static void timeline_temp_table(void){ |
| 771 | static const char zSql[] = |
| 772 | @ CREATE TEMP TABLE IF NOT EXISTS timeline( |
| 773 | @ rid INTEGER PRIMARY KEY, |
| 774 | @ uuid TEXT, |
| 775 | @ timestamp TEXT, |
| 776 | @ comment TEXT, |
| @@ -807,11 +807,11 @@ | |
| 807 | @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid |
| 808 | @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) AS tags, |
| 809 | @ tagid AS tagid, |
| 810 | @ brief AS brief, |
| 811 | @ event.mtime AS mtime |
| 812 | @ FROM event CROSS JOIN blob |
| 813 | @ WHERE blob.rid=event.objid |
| 814 | ; |
| 815 | if( zBase==0 ){ |
| 816 | zBase = mprintf(zBaseSql, TAG_BRANCH, TAG_BRANCH); |
| 817 | } |
| @@ -1175,24 +1175,24 @@ | |
| 1175 | rBefore = symbolic_name_to_mtime(zBefore); |
| 1176 | rAfter = symbolic_name_to_mtime(zAfter); |
| 1177 | rCirca = symbolic_name_to_mtime(zCirca); |
| 1178 | if( rAfter>0.0 ){ |
| 1179 | if( rBefore>0.0 ){ |
| 1180 | blob_appendf(&sql, |
| 1181 | " AND event.mtime>=%.17g AND event.mtime<=%.17g" |
| 1182 | " ORDER BY event.mtime ASC", rAfter-ONE_SECOND, rBefore+ONE_SECOND); |
| 1183 | url_add_parameter(&url, "a", zAfter); |
| 1184 | url_add_parameter(&url, "b", zBefore); |
| 1185 | nEntry = 1000000; |
| 1186 | }else{ |
| 1187 | blob_appendf(&sql, |
| 1188 | " AND event.mtime>=%.17g ORDER BY event.mtime ASC", |
| 1189 | rAfter-ONE_SECOND); |
| 1190 | url_add_parameter(&url, "a", zAfter); |
| 1191 | } |
| 1192 | }else if( rBefore>0.0 ){ |
| 1193 | blob_appendf(&sql, |
| 1194 | " AND event.mtime<=%.17g ORDER BY event.mtime DESC", |
| 1195 | rBefore+ONE_SECOND); |
| 1196 | url_add_parameter(&url, "b", zBefore); |
| 1197 | }else if( rCirca>0.0 ){ |
| 1198 | Blob sql2; |
| @@ -1308,11 +1308,11 @@ | |
| 1308 | /* |
| 1309 | ** The input query q selects various records. Print a human-readable |
| 1310 | ** summary of those records. |
| 1311 | ** |
| 1312 | ** Limit the number of entries printed to nLine. |
| 1313 | ** |
| 1314 | ** The query should return these columns: |
| 1315 | ** |
| 1316 | ** 0. rid |
| 1317 | ** 1. uuid |
| 1318 | ** 2. Date/Time |
| @@ -1342,11 +1342,11 @@ | |
| 1342 | int nParent = db_column_int(q, 5); |
| 1343 | char *zFree = 0; |
| 1344 | int n = 0; |
| 1345 | char zPrefix[80]; |
| 1346 | char zUuid[UUID_SIZE+1]; |
| 1347 | |
| 1348 | sqlite3_snprintf(sizeof(zUuid), zUuid, "%.10s", zId); |
| 1349 | if( memcmp(zDate, zPrevDate, 10) ){ |
| 1350 | fossil_print("=== %.10s ===\n", zDate); |
| 1351 | memcpy(zPrevDate, zDate, 10); |
| 1352 | nLine++; |
| @@ -1376,11 +1376,11 @@ | |
| 1376 | nLine += comment_print(zFree, 9, 79); |
| 1377 | sqlite3_free(zFree); |
| 1378 | |
| 1379 | if(showfiles){ |
| 1380 | if( !fchngQueryInit ){ |
| 1381 | db_prepare(&fchngQuery, |
| 1382 | "SELECT (pid==0) AS isnew," |
| 1383 | " (fid==0) AS isdel," |
| 1384 | " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name," |
| 1385 | " (SELECT uuid FROM blob WHERE rid=fid)," |
| 1386 | " (SELECT uuid FROM blob WHERE rid=pid)" |
| @@ -1393,11 +1393,11 @@ | |
| 1393 | db_bind_int(&fchngQuery, ":mid", rid); |
| 1394 | while( db_step(&fchngQuery)==SQLITE_ROW ){ |
| 1395 | const char *zFilename = db_column_text(&fchngQuery, 2); |
| 1396 | int isNew = db_column_int(&fchngQuery, 0); |
| 1397 | int isDel = db_column_int(&fchngQuery, 1); |
| 1398 | if( isNew ){ |
| 1399 | fossil_print(" ADDED %s\n",zFilename); |
| 1400 | }else if( isDel ){ |
| 1401 | fossil_print(" DELETED %s\n",zFilename); |
| 1402 | }else{ |
| 1403 | fossil_print(" EDITED %s\n", zFilename); |
| @@ -1412,11 +1412,11 @@ | |
| 1412 | /* |
| 1413 | ** Return a pointer to a static string that forms the basis for |
| 1414 | ** a timeline query for display on a TTY. |
| 1415 | */ |
| 1416 | const char *timeline_query_for_tty(void){ |
| 1417 | static const char zBaseSql[] = |
| 1418 | @ SELECT |
| 1419 | @ blob.rid AS rid, |
| 1420 | @ uuid, |
| 1421 | @ datetime(event.mtime,'localtime') AS mDateTime, |
| 1422 | @ coalesce(ecomment,comment) |
| 1423 |