Fossil SCM

merged in trunk [e161670939b93ec].

stephan 2011-10-19 22:31 json-multitag-test merge
Commit 1d0a7103a35a77a671694984e43f40044cb5d788
+1 -1
--- VERSION
+++ VERSION
@@ -1,1 +1,1 @@
1
-1.19
1
+1.20
22
--- VERSION
+++ VERSION
@@ -1,1 +1,1 @@
1 1.19
2
--- VERSION
+++ VERSION
@@ -1,1 +1,1 @@
1 1.20
2
--- src/descendants.c
+++ src/descendants.c
@@ -202,11 +202,12 @@
202202
void compute_direct_ancestors(int rid, int N){
203203
Stmt ins;
204204
Stmt q;
205205
int gen = 0;
206206
db_multi_exec(
207
- "CREATE TEMP TABLE ancestor(rid INTEGER, generation INTEGER PRIMARY KEY);"
207
+ "CREATE TEMP TABLE IF NOT EXISTS ancestor(rid INTEGER, generation INTEGER PRIMARY KEY);"
208
+ "DELETE FROM ancestor;"
208209
"INSERT INTO ancestor VALUES(%d, 0);", rid
209210
);
210211
db_prepare(&ins, "INSERT INTO ancestor VALUES(:rid, :gen)");
211212
db_prepare(&q,
212213
"SELECT pid FROM plink"
213214
--- src/descendants.c
+++ src/descendants.c
@@ -202,11 +202,12 @@
202 void compute_direct_ancestors(int rid, int N){
203 Stmt ins;
204 Stmt q;
205 int gen = 0;
206 db_multi_exec(
207 "CREATE TEMP TABLE ancestor(rid INTEGER, generation INTEGER PRIMARY KEY);"
 
208 "INSERT INTO ancestor VALUES(%d, 0);", rid
209 );
210 db_prepare(&ins, "INSERT INTO ancestor VALUES(:rid, :gen)");
211 db_prepare(&q,
212 "SELECT pid FROM plink"
213
--- src/descendants.c
+++ src/descendants.c
@@ -202,11 +202,12 @@
202 void compute_direct_ancestors(int rid, int N){
203 Stmt ins;
204 Stmt q;
205 int gen = 0;
206 db_multi_exec(
207 "CREATE TEMP TABLE IF NOT EXISTS ancestor(rid INTEGER, generation INTEGER PRIMARY KEY);"
208 "DELETE FROM ancestor;"
209 "INSERT INTO ancestor VALUES(%d, 0);", rid
210 );
211 db_prepare(&ins, "INSERT INTO ancestor VALUES(:rid, :gen)");
212 db_prepare(&q,
213 "SELECT pid FROM plink"
214
+11 -1
--- src/diff.c
+++ src/diff.c
@@ -1068,10 +1068,11 @@
10681068
*/
10691069
void annotate_cmd(void){
10701070
int fnid; /* Filename ID */
10711071
int fid; /* File instance ID */
10721072
int mid; /* Manifest where file was checked in */
1073
+ int cid; /* Checkout ID */
10731074
Blob treename; /* FILENAME translated to canonical form */
10741075
char *zFilename; /* Cannonical filename */
10751076
Annotator ann; /* The annotation of the file */
10761077
int i; /* Loop counter */
10771078
const char *zLimit; /* The value to the --limit option */
@@ -1097,11 +1098,20 @@
10971098
}
10981099
fid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFilename);
10991100
if( fid==0 ){
11001101
fossil_fatal("not part of current checkout: %s", zFilename);
11011102
}
1102
- mid = db_int(0, "SELECT mid FROM mlink WHERE fid=%d AND fnid=%d", fid, fnid);
1103
+ cid = db_lget_int("checkout", 0);
1104
+ if (cid == 0){
1105
+ fossil_fatal("Not in a checkout");
1106
+ }
1107
+ if( iLimit<=0 ) iLimit = 1000000000;
1108
+ compute_direct_ancestors(cid, iLimit);
1109
+ mid = db_int(0, "SELECT mlink.mid FROM mlink, ancestor "
1110
+ " WHERE mlink.fid=%d AND mlink.fnid=%d AND mlink.mid=ancestor.rid"
1111
+ " ORDER BY ancestor.generation ASC LIMIT 1",
1112
+ fid, fnid);
11031113
if( mid==0 ){
11041114
fossil_panic("unable to find manifest");
11051115
}
11061116
if( fileVers ) annFlags |= ANN_FILE_VERS;
11071117
annotate_file(&ann, fnid, mid, 0, iLimit, annFlags);
11081118
--- src/diff.c
+++ src/diff.c
@@ -1068,10 +1068,11 @@
1068 */
1069 void annotate_cmd(void){
1070 int fnid; /* Filename ID */
1071 int fid; /* File instance ID */
1072 int mid; /* Manifest where file was checked in */
 
1073 Blob treename; /* FILENAME translated to canonical form */
1074 char *zFilename; /* Cannonical filename */
1075 Annotator ann; /* The annotation of the file */
1076 int i; /* Loop counter */
1077 const char *zLimit; /* The value to the --limit option */
@@ -1097,11 +1098,20 @@
1097 }
1098 fid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFilename);
1099 if( fid==0 ){
1100 fossil_fatal("not part of current checkout: %s", zFilename);
1101 }
1102 mid = db_int(0, "SELECT mid FROM mlink WHERE fid=%d AND fnid=%d", fid, fnid);
 
 
 
 
 
 
 
 
 
1103 if( mid==0 ){
1104 fossil_panic("unable to find manifest");
1105 }
1106 if( fileVers ) annFlags |= ANN_FILE_VERS;
1107 annotate_file(&ann, fnid, mid, 0, iLimit, annFlags);
1108
--- src/diff.c
+++ src/diff.c
@@ -1068,10 +1068,11 @@
1068 */
1069 void annotate_cmd(void){
1070 int fnid; /* Filename ID */
1071 int fid; /* File instance ID */
1072 int mid; /* Manifest where file was checked in */
1073 int cid; /* Checkout ID */
1074 Blob treename; /* FILENAME translated to canonical form */
1075 char *zFilename; /* Cannonical filename */
1076 Annotator ann; /* The annotation of the file */
1077 int i; /* Loop counter */
1078 const char *zLimit; /* The value to the --limit option */
@@ -1097,11 +1098,20 @@
1098 }
1099 fid = db_int(0, "SELECT rid FROM vfile WHERE pathname=%Q", zFilename);
1100 if( fid==0 ){
1101 fossil_fatal("not part of current checkout: %s", zFilename);
1102 }
1103 cid = db_lget_int("checkout", 0);
1104 if (cid == 0){
1105 fossil_fatal("Not in a checkout");
1106 }
1107 if( iLimit<=0 ) iLimit = 1000000000;
1108 compute_direct_ancestors(cid, iLimit);
1109 mid = db_int(0, "SELECT mlink.mid FROM mlink, ancestor "
1110 " WHERE mlink.fid=%d AND mlink.fnid=%d AND mlink.mid=ancestor.rid"
1111 " ORDER BY ancestor.generation ASC LIMIT 1",
1112 fid, fnid);
1113 if( mid==0 ){
1114 fossil_panic("unable to find manifest");
1115 }
1116 if( fileVers ) annFlags |= ANN_FILE_VERS;
1117 annotate_file(&ann, fnid, mid, 0, iLimit, annFlags);
1118
+75 -40
--- src/info.c
+++ src/info.c
@@ -334,13 +334,17 @@
334334
@ for %h(zName)</p>
335335
}else{
336336
@ <p>Changes to %h(zName)</p>
337337
}
338338
if( showDiff ){
339
- @ <blockquote><pre>
340
- append_diff(zOld, zNew);
341
- @ </pre></blockquote>
339
+ if( sideBySide ){
340
+ generate_sbsdiff(zOld, zNew);
341
+ }else{
342
+ @ <blockquote><pre>
343
+ append_diff(zOld, zNew);
344
+ @ </pre></blockquote>
345
+ }
342346
}
343347
}else{
344348
if( zOld && zNew ){
345349
if( fossil_strcmp(zOld, zNew)!=0 ){
346350
@ <p>Modified <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
@@ -361,11 +365,11 @@
361365
@ <p>Added <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
362366
@ version <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)]</a>
363367
}
364368
if( showDiff ){
365369
if( sideBySide ){
366
- generate_sbsdiff(zOld, zNew);
370
+ generate_sbsdiff(zOld, zNew);
367371
}else{
368372
@ <blockquote><pre>
369373
append_diff(zOld, zNew);
370374
@ </pre></blockquote>
371375
}
@@ -543,51 +547,49 @@
543547
}
544548
db_finalize(&q);
545549
showTags(rid, "");
546550
if( zParent ){
547551
@ <div class="section">Changes</div>
552
+ @ <div class="sectionmenu">
548553
showDiff = g.zPath[0]!='c';
549554
if( db_get_boolean("show-version-diffs", 0)==0 ){
550555
showDiff = !showDiff;
551556
if( showDiff ){
552
- @ <a href="%s(g.zTop)/vinfo/%T(zName)">[hide&nbsp;diffs]</a>
553
- @ &nbsp;&nbsp;
554
- if( sideBySide ){
555
- @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=0">
556
- @ [unified&nbsp;diffs]</a>
557
- }else{
558
- @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=1">
559
- @ [side-by-side&nbsp;diffs]</a>
560
- }
561
- }else{
562
- @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=0">
563
- @ [show&nbsp;unified&nbsp;diffs]</a>
564
- @ &nbsp;&nbsp;
565
- @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=1">
566
- @ [show&nbsp;side-by-side&nbsp;diffs]</a>
557
+ @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)">
558
+ @ hide&nbsp;diffs</a>
559
+ if( sideBySide ){
560
+ @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=0">
561
+ @ unified&nbsp;diffs</a>
562
+ }else{
563
+ @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=1">
564
+ @ side-by-side&nbsp;diffs</a>
565
+ }
566
+ }else{
567
+ @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=0">
568
+ @ show&nbsp;unified&nbsp;diffs</a>
569
+ @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=1">
570
+ @ show&nbsp;side-by-side&nbsp;diffs</a>
567571
}
568572
}else{
569573
if( showDiff ){
570
- @ <a href="%s(g.zTop)/ci/%T(zName)">[hide&nbsp;diffs]</a>
571
- @ &nbsp;&nbsp;
572
- if( sideBySide ){
573
- @ <a href="%s(g.zTop)/info/%T(zName)?sbs=0">
574
- @ [unified&nbsp;diffs]</a>
575
- }else{
576
- @ <a href="%s(g.zTop)/info/%T(zName)?sbs=1">
577
- @ [side-by-side&nbsp;diffs]</a>
578
- }
579
- }else{
580
- @ <a href="%s(g.zTop)/vinfo/%T(zName)?sbs=0">
581
- @ [show&nbsp;unified&nbsp;diffs]</a>
582
- @ &nbsp;&nbsp;
583
- @ <a href="%s(g.zTop)/vinfo/%T(zName)?sbs=1">
584
- @ [show&nbsp;side-by-side&nbsp;diffs]</a>
585
- }
586
- }
587
- @ &nbsp;&nbsp;
588
- @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a><br/>
574
+ @ <a class="button" href="%s(g.zTop)/ci/%T(zName)">hide&nbsp;diffs</a>
575
+ if( sideBySide ){
576
+ @ <a class="button" href="%s(g.zTop)/info/%T(zName)?sbs=0">
577
+ @ unified&nbsp;diffs</a>
578
+ }else{
579
+ @ <a class="button" href="%s(g.zTop)/info/%T(zName)?sbs=1">
580
+ @ side-by-side&nbsp;diffs</a>
581
+ }
582
+ }else{
583
+ @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)?sbs=0">
584
+ @ show&nbsp;unified&nbsp;diffs</a>
585
+ @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)?sbs=1">
586
+ @ show&nbsp;side-by-side&nbsp;diffs</a>
587
+ }
588
+ }
589
+ @ <a class="button" href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">
590
+ @ patch</a></div>
589591
db_prepare(&q,
590592
"SELECT name,"
591593
" mperm,"
592594
" (SELECT uuid FROM blob WHERE rid=mlink.pid),"
593595
" (SELECT uuid FROM blob WHERE rid=mlink.fid),"
@@ -1675,10 +1677,42 @@
16751677
@ value="%h(stdClrFound?"":zDefaultColor)" />
16761678
@ </td>
16771679
@ </tr>
16781680
@ </table>
16791681
}
1682
+
1683
+/*
1684
+** Do a comment comparison.
1685
+**
1686
+** + Leading and trailing whitespace are ignored.
1687
+** + \r\n characters compare equal to \n
1688
+**
1689
+** Return true if equal and false if not equal.
1690
+*/
1691
+static int comment_compare(const char *zA, const char *zB){
1692
+ if( zA==0 ) zA = "";
1693
+ if( zB==0 ) zB = "";
1694
+ while( fossil_isspace(zA[0]) ) zA++;
1695
+ while( fossil_isspace(zB[0]) ) zB++;
1696
+ while( zA[0] && zB[0] ){
1697
+ if( zA[0]==zB[0] ){ zA++; zB++; continue; }
1698
+ if( zA[0]=='\r' && zA[1]=='\n' && zB[0]=='\n' ){
1699
+ zA += 2;
1700
+ zB++;
1701
+ continue;
1702
+ }
1703
+ if( zB[0]=='\r' && zB[1]=='\n' && zA[0]=='\n' ){
1704
+ zB += 2;
1705
+ zA++;
1706
+ continue;
1707
+ }
1708
+ return 0;
1709
+ }
1710
+ while( fossil_isspace(zB[0]) ) zB++;
1711
+ while( fossil_isspace(zA[0]) ) zA++;
1712
+ return zA[0]==0 && zB[0]==0;
1713
+}
16801714
16811715
/*
16821716
** WEBPAGE: ci_edit
16831717
** URL: ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
16841718
**
@@ -1752,11 +1786,12 @@
17521786
blob_zero(&ctrl);
17531787
zNow = date_in_standard_format("now");
17541788
blob_appendf(&ctrl, "D %s\n", zNow);
17551789
db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)");
17561790
if( zNewColor[0]
1757
- && (fPropagateColor!=fNewPropagateColor || fossil_strcmp(zColor,zNewColor)!=0)
1791
+ && (fPropagateColor!=fNewPropagateColor
1792
+ || fossil_strcmp(zColor,zNewColor)!=0)
17581793
){
17591794
char *zPrefix = "+";
17601795
if( fNewPropagateColor ){
17611796
zPrefix = "*";
17621797
}
@@ -1764,11 +1799,11 @@
17641799
zPrefix, zNewColor);
17651800
}
17661801
if( zNewColor[0]==0 && zColor[0]!=0 ){
17671802
db_multi_exec("REPLACE INTO newtags VALUES('bgcolor','-',NULL)");
17681803
}
1769
- if( fossil_strcmp(zComment,zNewComment)!=0 ){
1804
+ if( comment_compare(zComment,zNewComment)==0 ){
17701805
db_multi_exec("REPLACE INTO newtags VALUES('comment','+',%Q)",
17711806
zNewComment);
17721807
}
17731808
if( fossil_strcmp(zDate,zNewDate)!=0 ){
17741809
db_multi_exec("REPLACE INTO newtags VALUES('date','+',%Q)",
17751810
--- src/info.c
+++ src/info.c
@@ -334,13 +334,17 @@
334 @ for %h(zName)</p>
335 }else{
336 @ <p>Changes to %h(zName)</p>
337 }
338 if( showDiff ){
339 @ <blockquote><pre>
340 append_diff(zOld, zNew);
341 @ </pre></blockquote>
 
 
 
 
342 }
343 }else{
344 if( zOld && zNew ){
345 if( fossil_strcmp(zOld, zNew)!=0 ){
346 @ <p>Modified <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
@@ -361,11 +365,11 @@
361 @ <p>Added <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
362 @ version <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)]</a>
363 }
364 if( showDiff ){
365 if( sideBySide ){
366 generate_sbsdiff(zOld, zNew);
367 }else{
368 @ <blockquote><pre>
369 append_diff(zOld, zNew);
370 @ </pre></blockquote>
371 }
@@ -543,51 +547,49 @@
543 }
544 db_finalize(&q);
545 showTags(rid, "");
546 if( zParent ){
547 @ <div class="section">Changes</div>
 
548 showDiff = g.zPath[0]!='c';
549 if( db_get_boolean("show-version-diffs", 0)==0 ){
550 showDiff = !showDiff;
551 if( showDiff ){
552 @ <a href="%s(g.zTop)/vinfo/%T(zName)">[hide&nbsp;diffs]</a>
553 @ &nbsp;&nbsp;
554 if( sideBySide ){
555 @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=0">
556 @ [unified&nbsp;diffs]</a>
557 }else{
558 @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=1">
559 @ [side-by-side&nbsp;diffs]</a>
560 }
561 }else{
562 @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=0">
563 @ [show&nbsp;unified&nbsp;diffs]</a>
564 @ &nbsp;&nbsp;
565 @ <a href="%s(g.zTop)/ci/%T(zName)?sbs=1">
566 @ [show&nbsp;side-by-side&nbsp;diffs]</a>
567 }
568 }else{
569 if( showDiff ){
570 @ <a href="%s(g.zTop)/ci/%T(zName)">[hide&nbsp;diffs]</a>
571 @ &nbsp;&nbsp;
572 if( sideBySide ){
573 @ <a href="%s(g.zTop)/info/%T(zName)?sbs=0">
574 @ [unified&nbsp;diffs]</a>
575 }else{
576 @ <a href="%s(g.zTop)/info/%T(zName)?sbs=1">
577 @ [side-by-side&nbsp;diffs]</a>
578 }
579 }else{
580 @ <a href="%s(g.zTop)/vinfo/%T(zName)?sbs=0">
581 @ [show&nbsp;unified&nbsp;diffs]</a>
582 @ &nbsp;&nbsp;
583 @ <a href="%s(g.zTop)/vinfo/%T(zName)?sbs=1">
584 @ [show&nbsp;side-by-side&nbsp;diffs]</a>
585 }
586 }
587 @ &nbsp;&nbsp;
588 @ <a href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">[patch]</a><br/>
589 db_prepare(&q,
590 "SELECT name,"
591 " mperm,"
592 " (SELECT uuid FROM blob WHERE rid=mlink.pid),"
593 " (SELECT uuid FROM blob WHERE rid=mlink.fid),"
@@ -1675,10 +1677,42 @@
1675 @ value="%h(stdClrFound?"":zDefaultColor)" />
1676 @ </td>
1677 @ </tr>
1678 @ </table>
1679 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1680
1681 /*
1682 ** WEBPAGE: ci_edit
1683 ** URL: ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
1684 **
@@ -1752,11 +1786,12 @@
1752 blob_zero(&ctrl);
1753 zNow = date_in_standard_format("now");
1754 blob_appendf(&ctrl, "D %s\n", zNow);
1755 db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)");
1756 if( zNewColor[0]
1757 && (fPropagateColor!=fNewPropagateColor || fossil_strcmp(zColor,zNewColor)!=0)
 
1758 ){
1759 char *zPrefix = "+";
1760 if( fNewPropagateColor ){
1761 zPrefix = "*";
1762 }
@@ -1764,11 +1799,11 @@
1764 zPrefix, zNewColor);
1765 }
1766 if( zNewColor[0]==0 && zColor[0]!=0 ){
1767 db_multi_exec("REPLACE INTO newtags VALUES('bgcolor','-',NULL)");
1768 }
1769 if( fossil_strcmp(zComment,zNewComment)!=0 ){
1770 db_multi_exec("REPLACE INTO newtags VALUES('comment','+',%Q)",
1771 zNewComment);
1772 }
1773 if( fossil_strcmp(zDate,zNewDate)!=0 ){
1774 db_multi_exec("REPLACE INTO newtags VALUES('date','+',%Q)",
1775
--- src/info.c
+++ src/info.c
@@ -334,13 +334,17 @@
334 @ for %h(zName)</p>
335 }else{
336 @ <p>Changes to %h(zName)</p>
337 }
338 if( showDiff ){
339 if( sideBySide ){
340 generate_sbsdiff(zOld, zNew);
341 }else{
342 @ <blockquote><pre>
343 append_diff(zOld, zNew);
344 @ </pre></blockquote>
345 }
346 }
347 }else{
348 if( zOld && zNew ){
349 if( fossil_strcmp(zOld, zNew)!=0 ){
350 @ <p>Modified <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
@@ -361,11 +365,11 @@
365 @ <p>Added <a href="%s(g.zTop)/finfo?name=%T(zName)">%h(zName)</a>
366 @ version <a href="%s(g.zTop)/artifact/%s(zNew)">[%S(zNew)]</a>
367 }
368 if( showDiff ){
369 if( sideBySide ){
370 generate_sbsdiff(zOld, zNew);
371 }else{
372 @ <blockquote><pre>
373 append_diff(zOld, zNew);
374 @ </pre></blockquote>
375 }
@@ -543,51 +547,49 @@
547 }
548 db_finalize(&q);
549 showTags(rid, "");
550 if( zParent ){
551 @ <div class="section">Changes</div>
552 @ <div class="sectionmenu">
553 showDiff = g.zPath[0]!='c';
554 if( db_get_boolean("show-version-diffs", 0)==0 ){
555 showDiff = !showDiff;
556 if( showDiff ){
557 @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)">
558 @ hide&nbsp;diffs</a>
559 if( sideBySide ){
560 @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=0">
561 @ unified&nbsp;diffs</a>
562 }else{
563 @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=1">
564 @ side-by-side&nbsp;diffs</a>
565 }
566 }else{
567 @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=0">
568 @ show&nbsp;unified&nbsp;diffs</a>
569 @ <a class="button" href="%s(g.zTop)/ci/%T(zName)?sbs=1">
570 @ show&nbsp;side-by-side&nbsp;diffs</a>
 
571 }
572 }else{
573 if( showDiff ){
574 @ <a class="button" href="%s(g.zTop)/ci/%T(zName)">hide&nbsp;diffs</a>
575 if( sideBySide ){
576 @ <a class="button" href="%s(g.zTop)/info/%T(zName)?sbs=0">
577 @ unified&nbsp;diffs</a>
578 }else{
579 @ <a class="button" href="%s(g.zTop)/info/%T(zName)?sbs=1">
580 @ side-by-side&nbsp;diffs</a>
581 }
582 }else{
583 @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)?sbs=0">
584 @ show&nbsp;unified&nbsp;diffs</a>
585 @ <a class="button" href="%s(g.zTop)/vinfo/%T(zName)?sbs=1">
586 @ show&nbsp;side-by-side&nbsp;diffs</a>
587 }
588 }
589 @ <a class="button" href="%s(g.zTop)/vpatch?from=%S(zParent)&to=%S(zUuid)">
590 @ patch</a></div>
 
 
591 db_prepare(&q,
592 "SELECT name,"
593 " mperm,"
594 " (SELECT uuid FROM blob WHERE rid=mlink.pid),"
595 " (SELECT uuid FROM blob WHERE rid=mlink.fid),"
@@ -1675,10 +1677,42 @@
1677 @ value="%h(stdClrFound?"":zDefaultColor)" />
1678 @ </td>
1679 @ </tr>
1680 @ </table>
1681 }
1682
1683 /*
1684 ** Do a comment comparison.
1685 **
1686 ** + Leading and trailing whitespace are ignored.
1687 ** + \r\n characters compare equal to \n
1688 **
1689 ** Return true if equal and false if not equal.
1690 */
1691 static int comment_compare(const char *zA, const char *zB){
1692 if( zA==0 ) zA = "";
1693 if( zB==0 ) zB = "";
1694 while( fossil_isspace(zA[0]) ) zA++;
1695 while( fossil_isspace(zB[0]) ) zB++;
1696 while( zA[0] && zB[0] ){
1697 if( zA[0]==zB[0] ){ zA++; zB++; continue; }
1698 if( zA[0]=='\r' && zA[1]=='\n' && zB[0]=='\n' ){
1699 zA += 2;
1700 zB++;
1701 continue;
1702 }
1703 if( zB[0]=='\r' && zB[1]=='\n' && zA[0]=='\n' ){
1704 zB += 2;
1705 zA++;
1706 continue;
1707 }
1708 return 0;
1709 }
1710 while( fossil_isspace(zB[0]) ) zB++;
1711 while( fossil_isspace(zA[0]) ) zA++;
1712 return zA[0]==0 && zB[0]==0;
1713 }
1714
1715 /*
1716 ** WEBPAGE: ci_edit
1717 ** URL: ci_edit?r=RID&c=NEWCOMMENT&u=NEWUSER
1718 **
@@ -1752,11 +1786,12 @@
1786 blob_zero(&ctrl);
1787 zNow = date_in_standard_format("now");
1788 blob_appendf(&ctrl, "D %s\n", zNow);
1789 db_multi_exec("CREATE TEMP TABLE newtags(tag UNIQUE, prefix, value)");
1790 if( zNewColor[0]
1791 && (fPropagateColor!=fNewPropagateColor
1792 || fossil_strcmp(zColor,zNewColor)!=0)
1793 ){
1794 char *zPrefix = "+";
1795 if( fNewPropagateColor ){
1796 zPrefix = "*";
1797 }
@@ -1764,11 +1799,11 @@
1799 zPrefix, zNewColor);
1800 }
1801 if( zNewColor[0]==0 && zColor[0]!=0 ){
1802 db_multi_exec("REPLACE INTO newtags VALUES('bgcolor','-',NULL)");
1803 }
1804 if( comment_compare(zComment,zNewComment)==0 ){
1805 db_multi_exec("REPLACE INTO newtags VALUES('comment','+',%Q)",
1806 zNewComment);
1807 }
1808 if( fossil_strcmp(zDate,zNewDate)!=0 ){
1809 db_multi_exec("REPLACE INTO newtags VALUES('date','+',%Q)",
1810
+1 -1
--- src/merge.c
+++ src/merge.c
@@ -509,11 +509,11 @@
509509
if( !nochangeFlag ){
510510
if( nConflict ){
511511
fossil_print("WARNING: %d merge conflicts", nConflict);
512512
}
513513
if( nOverwrite ){
514
- fossil_warning("WARNING: %d unmanaged files where overwritten",
514
+ fossil_warning("WARNING: %d unmanaged files were overwritten",
515515
nOverwrite);
516516
}
517517
}
518518
519519
/*
520520
--- src/merge.c
+++ src/merge.c
@@ -509,11 +509,11 @@
509 if( !nochangeFlag ){
510 if( nConflict ){
511 fossil_print("WARNING: %d merge conflicts", nConflict);
512 }
513 if( nOverwrite ){
514 fossil_warning("WARNING: %d unmanaged files where overwritten",
515 nOverwrite);
516 }
517 }
518
519 /*
520
--- src/merge.c
+++ src/merge.c
@@ -509,11 +509,11 @@
509 if( !nochangeFlag ){
510 if( nConflict ){
511 fossil_print("WARNING: %d merge conflicts", nConflict);
512 }
513 if( nOverwrite ){
514 fossil_warning("WARNING: %d unmanaged files were overwritten",
515 nOverwrite);
516 }
517 }
518
519 /*
520
+73 -67
--- src/skins.c
+++ src/skins.c
@@ -86,29 +86,30 @@
8686
@ text-align: center;
8787
@ letter-spacing: 1px;
8888
@ background-color: #404040;
8989
@ color: white;
9090
@ }
91
-@
91
+@
9292
@ /* The submenu bar that *sometimes* appears below the main menu */
93
-@ div.submenu {
93
+@ div.submenu, div.sectionmenu {
9494
@ padding: 3px 10px 3px 0px;
9595
@ font-size: 0.9em;
9696
@ text-align: center;
9797
@ background-color: #606060;
9898
@ color: white;
9999
@ }
100
-@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
100
+@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
101
+@ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
101102
@ padding: 3px 10px 3px 10px;
102103
@ color: white;
103104
@ text-decoration: none;
104105
@ }
105
-@ div.mainmenu a:hover, div.submenu a:hover {
106
+@ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
106107
@ color: #404040;
107108
@ background-color: white;
108109
@ }
109
-@
110
+@
110111
@ /* All page content from the bottom of the menu or submenu down to
111112
@ ** the footer */
112113
@ div.content {
113114
@ padding: 0ex 0ex 0ex 0ex;
114115
@ }
@@ -208,49 +209,47 @@
208209
@ <link rel="stylesheet" href="$home/style.css?blackwhite" type="text/css"
209210
@ media="screen">
210211
@ </head>
211212
@ <body>
212213
@ <div class="header">
213
-@ <div class="logo">
214
-@ <img src="$home/logo" alt="logo">
215
-@ </div>
216214
@ <div class="title"><small>$<project_name></small><br />$<title></div>
217215
@ <div class="status"><nobr><th1>
218216
@ if {[info exists login]} {
219217
@ puts "Logged in as $login"
220218
@ } else {
221219
@ puts "Not logged in"
222220
@ }
223221
@ </th1></nobr></div>
224222
@ </div>
225
-@ <div class="mainmenu"><th1>
226
-@ html "<a href=''$home$index_page''>Home</a> "
223
+@ <div class="mainmenu">
224
+@ <th1>
225
+@ html "<a href=''$home$index_page''>Home</a>\n"
227226
@ if {[anycap jor]} {
228
-@ html "<a href=''$home/timeline''>Timeline</a> "
227
+@ html "<a href=''$home/timeline''>Timeline</a>\n"
229228
@ }
230229
@ if {[hascap oh]} {
231
-@ html "<a href=''$home/dir?ci=tip''>Files</a> "
230
+@ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
232231
@ }
233232
@ if {[hascap o]} {
234
-@ html "<a href=''$home/brlist''>Branches</a> "
235
-@ html "<a href=''$home/taglist''>Tags</a> "
233
+@ html "<a href=''$home/brlist''>Branches</a>\n"
234
+@ html "<a href=''$home/taglist''>Tags</a>\n"
236235
@ }
237236
@ if {[hascap r]} {
238
-@ html "<a href=''$home/reportlist''>Tickets</a> "
237
+@ html "<a href=''$home/reportlist''>Tickets</a>\n"
239238
@ }
240239
@ if {[hascap j]} {
241
-@ html "<a href=''$home/wiki''>Wiki</a> "
240
+@ html "<a href=''$home/wiki''>Wiki</a>\n"
242241
@ }
243242
@ if {[hascap s]} {
244
-@ html "<a href=''$home/setup''>Admin</a> "
243
+@ html "<a href=''$home/setup''>Admin</a>\n"
245244
@ } elseif {[hascap a]} {
246
-@ html "<a href=''$home/setup_ulist''>Users</a> "
245
+@ html "<a href=''$home/setup_ulist''>Users</a>\n"
247246
@ }
248247
@ if {[info exists login]} {
249
-@ html "<a href=''$home/login''>Logout</a> "
248
+@ html "<a href=''$home/login''>Logout</a>\n"
250249
@ } else {
251
-@ html "<a href=''$home/login''>Login</a> "
250
+@ html "<a href=''$home/login''>Login</a>\n"
252251
@ }
253252
@ </th1></div>
254253
@ ');
255254
@ REPLACE INTO config(name,mtime,value)
256255
@ VALUES('footer',now(),'<div class="footer">
@@ -324,23 +323,24 @@
324323
@ background-color: #a09048;
325324
@ color: black;
326325
@ }
327326
@
328327
@ /* The submenu bar that *sometimes* appears below the main menu */
329
-@ div.submenu {
328
+@ div.submenu, div.sectionmenu {
330329
@ padding: 3px 10px 3px 0px;
331330
@ font-size: 0.9em;
332331
@ text-align: center;
333332
@ background-color: #c0af58;
334333
@ color: white;
335334
@ }
336
-@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
335
+@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
336
+@ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
337337
@ padding: 3px 10px 3px 10px;
338338
@ color: white;
339339
@ text-decoration: none;
340340
@ }
341
-@ div.mainmenu a:hover, div.submenu a:hover {
341
+@ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
342342
@ color: #a09048;
343343
@ background-color: white;
344344
@ }
345345
@
346346
@ /* All page content from the bottom of the menu or submenu down to
@@ -466,37 +466,38 @@
466466
@ } else {
467467
@ puts "Not logged in"
468468
@ }
469469
@ </th1></nobr></div>
470470
@ </div>
471
-@ <div class="mainmenu"><th1>
472
-@ html "<a href=''$home$index_page''>Home</a> "
471
+@ <div class="mainmenu">
472
+@ <th1>
473
+@ html "<a href=''$home$index_page''>Home</a>\n"
473474
@ if {[anycap jor]} {
474
-@ html "<a href=''$home/timeline''>Timeline</a> "
475
+@ html "<a href=''$home/timeline''>Timeline</a>\n"
475476
@ }
476477
@ if {[hascap oh]} {
477
-@ html "<a href=''$home/dir?ci=tip''>Files</a> "
478
+@ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
478479
@ }
479480
@ if {[hascap o]} {
480
-@ html "<a href=''$home/brlist''>Branches</a> "
481
-@ html "<a href=''$home/taglist''>Tags</a> "
481
+@ html "<a href=''$home/brlist''>Branches</a>\n"
482
+@ html "<a href=''$home/taglist''>Tags</a>\n"
482483
@ }
483484
@ if {[hascap r]} {
484
-@ html "<a href=''$home/reportlist''>Tickets</a> "
485
+@ html "<a href=''$home/reportlist''>Tickets</a>\n"
485486
@ }
486487
@ if {[hascap j]} {
487
-@ html "<a href=''$home/wiki''>Wiki</a> "
488
+@ html "<a href=''$home/wiki''>Wiki</a>\n"
488489
@ }
489490
@ if {[hascap s]} {
490
-@ html "<a href=''$home/setup''>Admin</a> "
491
+@ html "<a href=''$home/setup''>Admin</a>\n"
491492
@ } elseif {[hascap a]} {
492
-@ html "<a href=''$home/setup_ulist''>Users</a> "
493
+@ html "<a href=''$home/setup_ulist''>Users</a>\n"
493494
@ }
494495
@ if {[info exists login]} {
495
-@ html "<a href=''$home/login''>Logout</a> "
496
+@ html "<a href=''$home/login''>Logout</a>\n"
496497
@ } else {
497
-@ html "<a href=''$home/login''>Login</a> "
498
+@ html "<a href=''$home/login''>Login</a>\n"
498499
@ }
499500
@ </th1></div>
500501
@ ');
501502
@ REPLACE INTO config(name,mtime,value)
502503
@ VALUES('footer',now(),'<div class="footer">
@@ -605,25 +606,26 @@
605606
@ #container {
606607
@ padding-left: 9em;
607608
@ }
608609
@
609610
@ /* The submenu bar that *sometimes* appears below the main menu */
610
-@ div.submenu {
611
+@ div.submenu, div.sectionmenu {
611612
@ padding: 3px 10px 3px 10px;
612613
@ font-size: 0.9em;
613614
@ text-align: center;
614615
@ border:1px solid #999;
615616
@ border-width:1px 0px;
616617
@ background-color: #eee;
617618
@ color: #333;
618619
@ }
619
-@ div.submenu a, div.submenu a:visited {
620
+@ div.submenu a, div.submenu a:visited, div.sectionmenu>a.button:link,
621
+@ div.sectionmenu>a.button:visited {
620622
@ padding: 3px 10px 3px 10px;
621623
@ color: #333;
622624
@ text-decoration: none;
623625
@ }
624
-@ div.submenu a:hover {
626
+@ div.submenu a:hover, div.sectionmenu>a.button:hover {
625627
@ color: #eee;
626628
@ background-color: #333;
627629
@ }
628630
@
629631
@ /* All page content from the bottom of the menu or submenu down to
@@ -748,37 +750,38 @@
748750
@ } else {
749751
@ puts "Not logged in"
750752
@ }
751753
@ </th1></nobr></div>
752754
@ </div>
753
-@ <div class="mainmenu"><th1>
754
-@ html "<li><a href=''$home$index_page''>Home</a></li>"
755
+@ <div class="mainmenu">
756
+@ <th1>
757
+@ html "<a href=''$home$index_page''>Home</a>\n"
755758
@ if {[anycap jor]} {
756
-@ html "<li><a href=''$home/timeline''>Timeline</a></li>"
759
+@ html "<a href=''$home/timeline''>Timeline</a>\n"
757760
@ }
758761
@ if {[hascap oh]} {
759
-@ html "<li><a href=''$home/dir?ci=tip''>Files</a></li>"
762
+@ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
760763
@ }
761764
@ if {[hascap o]} {
762
-@ html "<li><a href=''$home/brlist''>Branches</a></li>"
763
-@ html "<li><a href=''$home/taglist''>Tags</a></li>"
765
+@ html "<a href=''$home/brlist''>Branches</a>\n"
766
+@ html "<a href=''$home/taglist''>Tags</a>\n"
764767
@ }
765768
@ if {[hascap r]} {
766
-@ html "<li><a href=''$home/reportlist''>Tickets</a></li>"
769
+@ html "<a href=''$home/reportlist''>Tickets</a>\n"
767770
@ }
768771
@ if {[hascap j]} {
769
-@ html "<li><a href=''$home/wiki''>Wiki</a></li>"
772
+@ html "<a href=''$home/wiki''>Wiki</a>\n"
770773
@ }
771774
@ if {[hascap s]} {
772
-@ html "<li><a href=''$home/setup''>Admin</a></li>"
775
+@ html "<a href=''$home/setup''>Admin</a>\n"
773776
@ } elseif {[hascap a]} {
774
-@ html "<li><a href=''$home/setup_ulist''>Users</a></li>"
777
+@ html "<a href=''$home/setup_ulist''>Users</a>\n"
775778
@ }
776779
@ if {[info exists login]} {
777
-@ html "<li><a href=''$home/login''>Logout</a></li>"
780
+@ html "<a href=''$home/login''>Logout</a>\n"
778781
@ } else {
779
-@ html "<li><a href=''$home/login''>Login</a></li>"
782
+@ html "<a href=''$home/login''>Login</a>\n"
780783
@ }
781784
@ </th1></ul></div>
782785
@ <div id="container">
783786
@ ');
784787
@ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
@@ -859,12 +862,13 @@
859862
@ -webkit-border-top-left-radius: 5px;
860863
@ -border-top-right-radius: 5px;
861864
@ -border-top-left-radius: 5px;
862865
@ border-top-left-radius: 5px;
863866
@ border-top-right-radius: 5px;
864
-@ vertical-align: center;
865
-@ min-height: 2em;
867
+@ vertical-align: middle;
868
+@ padding-top: 8px;
869
+@ padding-bottom: 8px;
866870
@ background-color: #446979;
867871
@ background: -webkit-gradient(linear,left bottom,left top, color-stop(0.02, rgb(51,81,94)), color-stop(0.76, rgb(85,129,149)));
868872
@ background: -moz-linear-gradient(center bottom,rgb(51,81,94) 2%, rgb(85,129,149) 76%);
869873
@ -webkit-box-shadow: 0px 3px 4px #333333;
870874
@ -moz-box-shadow: 0px 3px 4px #333333;
@@ -887,11 +891,12 @@
887891
@ div.mainmenu a, div.mainmenu a:visited {
888892
@ padding: 3px 10px 3px 10px;
889893
@ color: white;
890894
@ text-decoration: none;
891895
@ }
892
-@ div.submenu a, div.submenu a:visited {
896
+@ div.submenu a, div.submenu a:visited, a.button,
897
+@ div.sectionmenu>a.button:link, div.sectinmenu>a.button:visited {
893898
@ padding: 2px 8px;
894899
@ color: #000;
895900
@ font-family: Arial;
896901
@ text-decoration: none;
897902
@ margin:auto;
@@ -909,11 +914,11 @@
909914
@ div.mainmenu a:hover {
910915
@ color: #000;
911916
@ background-color: white;
912917
@ }
913918
@
914
-@ div.submenu a:hover {
919
+@ div.submenu a:hover, div.sectionmenu>a.button:hover {
915920
@ background: -webkit-gradient(linear,left bottom, left top, color-stop(0, rgb(214,214,214)), color-stop(0.75, rgb(184,184,184)));
916921
@ background: -moz-linear-gradient(center bottom, rgb(214,214,214) 0%, rgb(184,184,184) 75%);
917922
@ background-color: #c0c0c0 ;
918923
@ }
919924
@
@@ -1110,39 +1115,40 @@
11101115
@ } else {
11111116
@ puts "Not logged in"
11121117
@ }
11131118
@ </th1></nobr></div>
11141119
@ </div>
1115
-@ <div class="mainmenu"><ul><th1>
1116
-@ html "<a href=''$home$index_page''>Home</a>"
1120
+@ <div class="mainmenu">
1121
+@ <th1>
1122
+@ html "<a href=''$home$index_page''>Home</a>\n"
11171123
@ if {[anycap jor]} {
1118
-@ html "<a href=''$home/timeline''>Timeline</a>"
1124
+@ html "<a href=''$home/timeline''>Timeline</a>\n"
11191125
@ }
11201126
@ if {[hascap oh]} {
1121
-@ html "<a href=''$home/dir?ci=tip''>Files</a>"
1127
+@ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
11221128
@ }
11231129
@ if {[hascap o]} {
1124
-@ html "<a href=''$home/brlist''>Branches</a>"
1125
-@ html "<a href=''$home/taglist''>Tags</a>"
1130
+@ html "<a href=''$home/brlist''>Branches</a>\n"
1131
+@ html "<a href=''$home/taglist''>Tags</a>\n"
11261132
@ }
11271133
@ if {[hascap r]} {
1128
-@ html "<a href=''$home/reportlist''>Tickets</a>"
1134
+@ html "<a href=''$home/reportlist''>Tickets</a>\n"
11291135
@ }
11301136
@ if {[hascap j]} {
1131
-@ html "<a href=''$home/wiki''>Wiki</a>"
1137
+@ html "<a href=''$home/wiki''>Wiki</a>\n"
11321138
@ }
11331139
@ if {[hascap s]} {
1134
-@ html "<a href=''$home/setup''>Admin</a>"
1140
+@ html "<a href=''$home/setup''>Admin</a>\n"
11351141
@ } elseif {[hascap a]} {
1136
-@ html "<a href=''$home/setup_ulist''>Users</a>"
1142
+@ html "<a href=''$home/setup_ulist''>Users</a>\n"
11371143
@ }
11381144
@ if {[info exists login]} {
1139
-@ html "<a href=''$home/login''>Logout</a>"
1145
+@ html "<a href=''$home/login''>Logout</a>\n"
11401146
@ } else {
1141
-@ html "<a href=''$home/login''>Login</a>"
1147
+@ html "<a href=''$home/login''>Login</a>\n"
11421148
@ }
1143
-@ </th1></ul></div>
1149
+@ </th1></div>
11441150
@ <div id="container">
11451151
@ ');
11461152
@ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
11471153
@ <div class="footer">
11481154
@ Fossil version $manifest_version $manifest_date
11491155
--- src/skins.c
+++ src/skins.c
@@ -86,29 +86,30 @@
86 @ text-align: center;
87 @ letter-spacing: 1px;
88 @ background-color: #404040;
89 @ color: white;
90 @ }
91 @
92 @ /* The submenu bar that *sometimes* appears below the main menu */
93 @ div.submenu {
94 @ padding: 3px 10px 3px 0px;
95 @ font-size: 0.9em;
96 @ text-align: center;
97 @ background-color: #606060;
98 @ color: white;
99 @ }
100 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
 
101 @ padding: 3px 10px 3px 10px;
102 @ color: white;
103 @ text-decoration: none;
104 @ }
105 @ div.mainmenu a:hover, div.submenu a:hover {
106 @ color: #404040;
107 @ background-color: white;
108 @ }
109 @
110 @ /* All page content from the bottom of the menu or submenu down to
111 @ ** the footer */
112 @ div.content {
113 @ padding: 0ex 0ex 0ex 0ex;
114 @ }
@@ -208,49 +209,47 @@
208 @ <link rel="stylesheet" href="$home/style.css?blackwhite" type="text/css"
209 @ media="screen">
210 @ </head>
211 @ <body>
212 @ <div class="header">
213 @ <div class="logo">
214 @ <img src="$home/logo" alt="logo">
215 @ </div>
216 @ <div class="title"><small>$<project_name></small><br />$<title></div>
217 @ <div class="status"><nobr><th1>
218 @ if {[info exists login]} {
219 @ puts "Logged in as $login"
220 @ } else {
221 @ puts "Not logged in"
222 @ }
223 @ </th1></nobr></div>
224 @ </div>
225 @ <div class="mainmenu"><th1>
226 @ html "<a href=''$home$index_page''>Home</a> "
 
227 @ if {[anycap jor]} {
228 @ html "<a href=''$home/timeline''>Timeline</a> "
229 @ }
230 @ if {[hascap oh]} {
231 @ html "<a href=''$home/dir?ci=tip''>Files</a> "
232 @ }
233 @ if {[hascap o]} {
234 @ html "<a href=''$home/brlist''>Branches</a> "
235 @ html "<a href=''$home/taglist''>Tags</a> "
236 @ }
237 @ if {[hascap r]} {
238 @ html "<a href=''$home/reportlist''>Tickets</a> "
239 @ }
240 @ if {[hascap j]} {
241 @ html "<a href=''$home/wiki''>Wiki</a> "
242 @ }
243 @ if {[hascap s]} {
244 @ html "<a href=''$home/setup''>Admin</a> "
245 @ } elseif {[hascap a]} {
246 @ html "<a href=''$home/setup_ulist''>Users</a> "
247 @ }
248 @ if {[info exists login]} {
249 @ html "<a href=''$home/login''>Logout</a> "
250 @ } else {
251 @ html "<a href=''$home/login''>Login</a> "
252 @ }
253 @ </th1></div>
254 @ ');
255 @ REPLACE INTO config(name,mtime,value)
256 @ VALUES('footer',now(),'<div class="footer">
@@ -324,23 +323,24 @@
324 @ background-color: #a09048;
325 @ color: black;
326 @ }
327 @
328 @ /* The submenu bar that *sometimes* appears below the main menu */
329 @ div.submenu {
330 @ padding: 3px 10px 3px 0px;
331 @ font-size: 0.9em;
332 @ text-align: center;
333 @ background-color: #c0af58;
334 @ color: white;
335 @ }
336 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
 
337 @ padding: 3px 10px 3px 10px;
338 @ color: white;
339 @ text-decoration: none;
340 @ }
341 @ div.mainmenu a:hover, div.submenu a:hover {
342 @ color: #a09048;
343 @ background-color: white;
344 @ }
345 @
346 @ /* All page content from the bottom of the menu or submenu down to
@@ -466,37 +466,38 @@
466 @ } else {
467 @ puts "Not logged in"
468 @ }
469 @ </th1></nobr></div>
470 @ </div>
471 @ <div class="mainmenu"><th1>
472 @ html "<a href=''$home$index_page''>Home</a> "
 
473 @ if {[anycap jor]} {
474 @ html "<a href=''$home/timeline''>Timeline</a> "
475 @ }
476 @ if {[hascap oh]} {
477 @ html "<a href=''$home/dir?ci=tip''>Files</a> "
478 @ }
479 @ if {[hascap o]} {
480 @ html "<a href=''$home/brlist''>Branches</a> "
481 @ html "<a href=''$home/taglist''>Tags</a> "
482 @ }
483 @ if {[hascap r]} {
484 @ html "<a href=''$home/reportlist''>Tickets</a> "
485 @ }
486 @ if {[hascap j]} {
487 @ html "<a href=''$home/wiki''>Wiki</a> "
488 @ }
489 @ if {[hascap s]} {
490 @ html "<a href=''$home/setup''>Admin</a> "
491 @ } elseif {[hascap a]} {
492 @ html "<a href=''$home/setup_ulist''>Users</a> "
493 @ }
494 @ if {[info exists login]} {
495 @ html "<a href=''$home/login''>Logout</a> "
496 @ } else {
497 @ html "<a href=''$home/login''>Login</a> "
498 @ }
499 @ </th1></div>
500 @ ');
501 @ REPLACE INTO config(name,mtime,value)
502 @ VALUES('footer',now(),'<div class="footer">
@@ -605,25 +606,26 @@
605 @ #container {
606 @ padding-left: 9em;
607 @ }
608 @
609 @ /* The submenu bar that *sometimes* appears below the main menu */
610 @ div.submenu {
611 @ padding: 3px 10px 3px 10px;
612 @ font-size: 0.9em;
613 @ text-align: center;
614 @ border:1px solid #999;
615 @ border-width:1px 0px;
616 @ background-color: #eee;
617 @ color: #333;
618 @ }
619 @ div.submenu a, div.submenu a:visited {
 
620 @ padding: 3px 10px 3px 10px;
621 @ color: #333;
622 @ text-decoration: none;
623 @ }
624 @ div.submenu a:hover {
625 @ color: #eee;
626 @ background-color: #333;
627 @ }
628 @
629 @ /* All page content from the bottom of the menu or submenu down to
@@ -748,37 +750,38 @@
748 @ } else {
749 @ puts "Not logged in"
750 @ }
751 @ </th1></nobr></div>
752 @ </div>
753 @ <div class="mainmenu"><th1>
754 @ html "<li><a href=''$home$index_page''>Home</a></li>"
 
755 @ if {[anycap jor]} {
756 @ html "<li><a href=''$home/timeline''>Timeline</a></li>"
757 @ }
758 @ if {[hascap oh]} {
759 @ html "<li><a href=''$home/dir?ci=tip''>Files</a></li>"
760 @ }
761 @ if {[hascap o]} {
762 @ html "<li><a href=''$home/brlist''>Branches</a></li>"
763 @ html "<li><a href=''$home/taglist''>Tags</a></li>"
764 @ }
765 @ if {[hascap r]} {
766 @ html "<li><a href=''$home/reportlist''>Tickets</a></li>"
767 @ }
768 @ if {[hascap j]} {
769 @ html "<li><a href=''$home/wiki''>Wiki</a></li>"
770 @ }
771 @ if {[hascap s]} {
772 @ html "<li><a href=''$home/setup''>Admin</a></li>"
773 @ } elseif {[hascap a]} {
774 @ html "<li><a href=''$home/setup_ulist''>Users</a></li>"
775 @ }
776 @ if {[info exists login]} {
777 @ html "<li><a href=''$home/login''>Logout</a></li>"
778 @ } else {
779 @ html "<li><a href=''$home/login''>Login</a></li>"
780 @ }
781 @ </th1></ul></div>
782 @ <div id="container">
783 @ ');
784 @ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
@@ -859,12 +862,13 @@
859 @ -webkit-border-top-left-radius: 5px;
860 @ -border-top-right-radius: 5px;
861 @ -border-top-left-radius: 5px;
862 @ border-top-left-radius: 5px;
863 @ border-top-right-radius: 5px;
864 @ vertical-align: center;
865 @ min-height: 2em;
 
866 @ background-color: #446979;
867 @ background: -webkit-gradient(linear,left bottom,left top, color-stop(0.02, rgb(51,81,94)), color-stop(0.76, rgb(85,129,149)));
868 @ background: -moz-linear-gradient(center bottom,rgb(51,81,94) 2%, rgb(85,129,149) 76%);
869 @ -webkit-box-shadow: 0px 3px 4px #333333;
870 @ -moz-box-shadow: 0px 3px 4px #333333;
@@ -887,11 +891,12 @@
887 @ div.mainmenu a, div.mainmenu a:visited {
888 @ padding: 3px 10px 3px 10px;
889 @ color: white;
890 @ text-decoration: none;
891 @ }
892 @ div.submenu a, div.submenu a:visited {
 
893 @ padding: 2px 8px;
894 @ color: #000;
895 @ font-family: Arial;
896 @ text-decoration: none;
897 @ margin:auto;
@@ -909,11 +914,11 @@
909 @ div.mainmenu a:hover {
910 @ color: #000;
911 @ background-color: white;
912 @ }
913 @
914 @ div.submenu a:hover {
915 @ background: -webkit-gradient(linear,left bottom, left top, color-stop(0, rgb(214,214,214)), color-stop(0.75, rgb(184,184,184)));
916 @ background: -moz-linear-gradient(center bottom, rgb(214,214,214) 0%, rgb(184,184,184) 75%);
917 @ background-color: #c0c0c0 ;
918 @ }
919 @
@@ -1110,39 +1115,40 @@
1110 @ } else {
1111 @ puts "Not logged in"
1112 @ }
1113 @ </th1></nobr></div>
1114 @ </div>
1115 @ <div class="mainmenu"><ul><th1>
1116 @ html "<a href=''$home$index_page''>Home</a>"
 
1117 @ if {[anycap jor]} {
1118 @ html "<a href=''$home/timeline''>Timeline</a>"
1119 @ }
1120 @ if {[hascap oh]} {
1121 @ html "<a href=''$home/dir?ci=tip''>Files</a>"
1122 @ }
1123 @ if {[hascap o]} {
1124 @ html "<a href=''$home/brlist''>Branches</a>"
1125 @ html "<a href=''$home/taglist''>Tags</a>"
1126 @ }
1127 @ if {[hascap r]} {
1128 @ html "<a href=''$home/reportlist''>Tickets</a>"
1129 @ }
1130 @ if {[hascap j]} {
1131 @ html "<a href=''$home/wiki''>Wiki</a>"
1132 @ }
1133 @ if {[hascap s]} {
1134 @ html "<a href=''$home/setup''>Admin</a>"
1135 @ } elseif {[hascap a]} {
1136 @ html "<a href=''$home/setup_ulist''>Users</a>"
1137 @ }
1138 @ if {[info exists login]} {
1139 @ html "<a href=''$home/login''>Logout</a>"
1140 @ } else {
1141 @ html "<a href=''$home/login''>Login</a>"
1142 @ }
1143 @ </th1></ul></div>
1144 @ <div id="container">
1145 @ ');
1146 @ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
1147 @ <div class="footer">
1148 @ Fossil version $manifest_version $manifest_date
1149
--- src/skins.c
+++ src/skins.c
@@ -86,29 +86,30 @@
86 @ text-align: center;
87 @ letter-spacing: 1px;
88 @ background-color: #404040;
89 @ color: white;
90 @ }
91 @
92 @ /* The submenu bar that *sometimes* appears below the main menu */
93 @ div.submenu, div.sectionmenu {
94 @ padding: 3px 10px 3px 0px;
95 @ font-size: 0.9em;
96 @ text-align: center;
97 @ background-color: #606060;
98 @ color: white;
99 @ }
100 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
101 @ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
102 @ padding: 3px 10px 3px 10px;
103 @ color: white;
104 @ text-decoration: none;
105 @ }
106 @ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
107 @ color: #404040;
108 @ background-color: white;
109 @ }
110 @
111 @ /* All page content from the bottom of the menu or submenu down to
112 @ ** the footer */
113 @ div.content {
114 @ padding: 0ex 0ex 0ex 0ex;
115 @ }
@@ -208,49 +209,47 @@
209 @ <link rel="stylesheet" href="$home/style.css?blackwhite" type="text/css"
210 @ media="screen">
211 @ </head>
212 @ <body>
213 @ <div class="header">
 
 
 
214 @ <div class="title"><small>$<project_name></small><br />$<title></div>
215 @ <div class="status"><nobr><th1>
216 @ if {[info exists login]} {
217 @ puts "Logged in as $login"
218 @ } else {
219 @ puts "Not logged in"
220 @ }
221 @ </th1></nobr></div>
222 @ </div>
223 @ <div class="mainmenu">
224 @ <th1>
225 @ html "<a href=''$home$index_page''>Home</a>\n"
226 @ if {[anycap jor]} {
227 @ html "<a href=''$home/timeline''>Timeline</a>\n"
228 @ }
229 @ if {[hascap oh]} {
230 @ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
231 @ }
232 @ if {[hascap o]} {
233 @ html "<a href=''$home/brlist''>Branches</a>\n"
234 @ html "<a href=''$home/taglist''>Tags</a>\n"
235 @ }
236 @ if {[hascap r]} {
237 @ html "<a href=''$home/reportlist''>Tickets</a>\n"
238 @ }
239 @ if {[hascap j]} {
240 @ html "<a href=''$home/wiki''>Wiki</a>\n"
241 @ }
242 @ if {[hascap s]} {
243 @ html "<a href=''$home/setup''>Admin</a>\n"
244 @ } elseif {[hascap a]} {
245 @ html "<a href=''$home/setup_ulist''>Users</a>\n"
246 @ }
247 @ if {[info exists login]} {
248 @ html "<a href=''$home/login''>Logout</a>\n"
249 @ } else {
250 @ html "<a href=''$home/login''>Login</a>\n"
251 @ }
252 @ </th1></div>
253 @ ');
254 @ REPLACE INTO config(name,mtime,value)
255 @ VALUES('footer',now(),'<div class="footer">
@@ -324,23 +323,24 @@
323 @ background-color: #a09048;
324 @ color: black;
325 @ }
326 @
327 @ /* The submenu bar that *sometimes* appears below the main menu */
328 @ div.submenu, div.sectionmenu {
329 @ padding: 3px 10px 3px 0px;
330 @ font-size: 0.9em;
331 @ text-align: center;
332 @ background-color: #c0af58;
333 @ color: white;
334 @ }
335 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
336 @ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
337 @ padding: 3px 10px 3px 10px;
338 @ color: white;
339 @ text-decoration: none;
340 @ }
341 @ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
342 @ color: #a09048;
343 @ background-color: white;
344 @ }
345 @
346 @ /* All page content from the bottom of the menu or submenu down to
@@ -466,37 +466,38 @@
466 @ } else {
467 @ puts "Not logged in"
468 @ }
469 @ </th1></nobr></div>
470 @ </div>
471 @ <div class="mainmenu">
472 @ <th1>
473 @ html "<a href=''$home$index_page''>Home</a>\n"
474 @ if {[anycap jor]} {
475 @ html "<a href=''$home/timeline''>Timeline</a>\n"
476 @ }
477 @ if {[hascap oh]} {
478 @ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
479 @ }
480 @ if {[hascap o]} {
481 @ html "<a href=''$home/brlist''>Branches</a>\n"
482 @ html "<a href=''$home/taglist''>Tags</a>\n"
483 @ }
484 @ if {[hascap r]} {
485 @ html "<a href=''$home/reportlist''>Tickets</a>\n"
486 @ }
487 @ if {[hascap j]} {
488 @ html "<a href=''$home/wiki''>Wiki</a>\n"
489 @ }
490 @ if {[hascap s]} {
491 @ html "<a href=''$home/setup''>Admin</a>\n"
492 @ } elseif {[hascap a]} {
493 @ html "<a href=''$home/setup_ulist''>Users</a>\n"
494 @ }
495 @ if {[info exists login]} {
496 @ html "<a href=''$home/login''>Logout</a>\n"
497 @ } else {
498 @ html "<a href=''$home/login''>Login</a>\n"
499 @ }
500 @ </th1></div>
501 @ ');
502 @ REPLACE INTO config(name,mtime,value)
503 @ VALUES('footer',now(),'<div class="footer">
@@ -605,25 +606,26 @@
606 @ #container {
607 @ padding-left: 9em;
608 @ }
609 @
610 @ /* The submenu bar that *sometimes* appears below the main menu */
611 @ div.submenu, div.sectionmenu {
612 @ padding: 3px 10px 3px 10px;
613 @ font-size: 0.9em;
614 @ text-align: center;
615 @ border:1px solid #999;
616 @ border-width:1px 0px;
617 @ background-color: #eee;
618 @ color: #333;
619 @ }
620 @ div.submenu a, div.submenu a:visited, div.sectionmenu>a.button:link,
621 @ div.sectionmenu>a.button:visited {
622 @ padding: 3px 10px 3px 10px;
623 @ color: #333;
624 @ text-decoration: none;
625 @ }
626 @ div.submenu a:hover, div.sectionmenu>a.button:hover {
627 @ color: #eee;
628 @ background-color: #333;
629 @ }
630 @
631 @ /* All page content from the bottom of the menu or submenu down to
@@ -748,37 +750,38 @@
750 @ } else {
751 @ puts "Not logged in"
752 @ }
753 @ </th1></nobr></div>
754 @ </div>
755 @ <div class="mainmenu">
756 @ <th1>
757 @ html "<a href=''$home$index_page''>Home</a>\n"
758 @ if {[anycap jor]} {
759 @ html "<a href=''$home/timeline''>Timeline</a>\n"
760 @ }
761 @ if {[hascap oh]} {
762 @ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
763 @ }
764 @ if {[hascap o]} {
765 @ html "<a href=''$home/brlist''>Branches</a>\n"
766 @ html "<a href=''$home/taglist''>Tags</a>\n"
767 @ }
768 @ if {[hascap r]} {
769 @ html "<a href=''$home/reportlist''>Tickets</a>\n"
770 @ }
771 @ if {[hascap j]} {
772 @ html "<a href=''$home/wiki''>Wiki</a>\n"
773 @ }
774 @ if {[hascap s]} {
775 @ html "<a href=''$home/setup''>Admin</a>\n"
776 @ } elseif {[hascap a]} {
777 @ html "<a href=''$home/setup_ulist''>Users</a>\n"
778 @ }
779 @ if {[info exists login]} {
780 @ html "<a href=''$home/login''>Logout</a>\n"
781 @ } else {
782 @ html "<a href=''$home/login''>Login</a>\n"
783 @ }
784 @ </th1></ul></div>
785 @ <div id="container">
786 @ ');
787 @ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
@@ -859,12 +862,13 @@
862 @ -webkit-border-top-left-radius: 5px;
863 @ -border-top-right-radius: 5px;
864 @ -border-top-left-radius: 5px;
865 @ border-top-left-radius: 5px;
866 @ border-top-right-radius: 5px;
867 @ vertical-align: middle;
868 @ padding-top: 8px;
869 @ padding-bottom: 8px;
870 @ background-color: #446979;
871 @ background: -webkit-gradient(linear,left bottom,left top, color-stop(0.02, rgb(51,81,94)), color-stop(0.76, rgb(85,129,149)));
872 @ background: -moz-linear-gradient(center bottom,rgb(51,81,94) 2%, rgb(85,129,149) 76%);
873 @ -webkit-box-shadow: 0px 3px 4px #333333;
874 @ -moz-box-shadow: 0px 3px 4px #333333;
@@ -887,11 +891,12 @@
891 @ div.mainmenu a, div.mainmenu a:visited {
892 @ padding: 3px 10px 3px 10px;
893 @ color: white;
894 @ text-decoration: none;
895 @ }
896 @ div.submenu a, div.submenu a:visited, a.button,
897 @ div.sectionmenu>a.button:link, div.sectinmenu>a.button:visited {
898 @ padding: 2px 8px;
899 @ color: #000;
900 @ font-family: Arial;
901 @ text-decoration: none;
902 @ margin:auto;
@@ -909,11 +914,11 @@
914 @ div.mainmenu a:hover {
915 @ color: #000;
916 @ background-color: white;
917 @ }
918 @
919 @ div.submenu a:hover, div.sectionmenu>a.button:hover {
920 @ background: -webkit-gradient(linear,left bottom, left top, color-stop(0, rgb(214,214,214)), color-stop(0.75, rgb(184,184,184)));
921 @ background: -moz-linear-gradient(center bottom, rgb(214,214,214) 0%, rgb(184,184,184) 75%);
922 @ background-color: #c0c0c0 ;
923 @ }
924 @
@@ -1110,39 +1115,40 @@
1115 @ } else {
1116 @ puts "Not logged in"
1117 @ }
1118 @ </th1></nobr></div>
1119 @ </div>
1120 @ <div class="mainmenu">
1121 @ <th1>
1122 @ html "<a href=''$home$index_page''>Home</a>\n"
1123 @ if {[anycap jor]} {
1124 @ html "<a href=''$home/timeline''>Timeline</a>\n"
1125 @ }
1126 @ if {[hascap oh]} {
1127 @ html "<a href=''$home/dir?ci=tip''>Files</a>\n"
1128 @ }
1129 @ if {[hascap o]} {
1130 @ html "<a href=''$home/brlist''>Branches</a>\n"
1131 @ html "<a href=''$home/taglist''>Tags</a>\n"
1132 @ }
1133 @ if {[hascap r]} {
1134 @ html "<a href=''$home/reportlist''>Tickets</a>\n"
1135 @ }
1136 @ if {[hascap j]} {
1137 @ html "<a href=''$home/wiki''>Wiki</a>\n"
1138 @ }
1139 @ if {[hascap s]} {
1140 @ html "<a href=''$home/setup''>Admin</a>\n"
1141 @ } elseif {[hascap a]} {
1142 @ html "<a href=''$home/setup_ulist''>Users</a>\n"
1143 @ }
1144 @ if {[info exists login]} {
1145 @ html "<a href=''$home/login''>Logout</a>\n"
1146 @ } else {
1147 @ html "<a href=''$home/login''>Login</a>\n"
1148 @ }
1149 @ </th1></div>
1150 @ <div id="container">
1151 @ ');
1152 @ REPLACE INTO config(name,mtime,value) VALUES('footer',now(),'</div>
1153 @ <div class="footer">
1154 @ Fossil version $manifest_version $manifest_date
1155
+27 -25
--- src/style.c
+++ src/style.c
@@ -210,37 +210,38 @@
210210
@ } else {
211211
@ puts "Not logged in"
212212
@ }
213213
@ </th1></div>
214214
@ </div>
215
-@ <div class="mainmenu"><th1>
216
-@ html "<a href='$home$index_page'>Home</a> "
215
+@ <div class="mainmenu">
216
+@ <th1>
217
+@ html "<a href='$home$index_page'>Home</a>\n"
217218
@ if {[anycap jor]} {
218
-@ html "<a href='$home/timeline'>Timeline</a> "
219
+@ html "<a href='$home/timeline'>Timeline</a>\n"
219220
@ }
220221
@ if {[hascap oh]} {
221
-@ html "<a href='$home/dir?ci=tip'>Files</a> "
222
+@ html "<a href='$home/dir?ci=tip'>Files</a>\n"
222223
@ }
223224
@ if {[hascap o]} {
224
-@ html "<a href='$home/brlist'>Branches</a> "
225
-@ html "<a href='$home/taglist'>Tags</a> "
225
+@ html "<a href='$home/brlist'>Branches</a>\n"
226
+@ html "<a href='$home/taglist'>Tags</a>\n"
226227
@ }
227228
@ if {[hascap r]} {
228
-@ html "<a href='$home/reportlist'>Tickets</a> "
229
+@ html "<a href='$home/reportlist'>Tickets</a>\n"
229230
@ }
230231
@ if {[hascap j]} {
231
-@ html "<a href='$home/wiki'>Wiki</a> "
232
+@ html "<a href='$home/wiki'>Wiki</a>\n"
232233
@ }
233234
@ if {[hascap s]} {
234
-@ html "<a href='$home/setup'>Admin</a> "
235
+@ html "<a href='$home/setup'>Admin</a>\n"
235236
@ } elseif {[hascap a]} {
236
-@ html "<a href='$home/setup_ulist'>Users</a> "
237
+@ html "<a href='$home/setup_ulist'>Users</a>\n"
237238
@ }
238239
@ if {[info exists login]} {
239
-@ html "<a href='$home/login'>Logout</a> "
240
+@ html "<a href='$home/login'>Logout</a>\n"
240241
@ } else {
241
-@ html "<a href='$home/login'>Login</a> "
242
+@ html "<a href='$home/login'>Login</a>\n"
242243
@ }
243244
@ </th1></div>
244245
;
245246
246247
/*
@@ -320,23 +321,24 @@
320321
@ background-color: #558195;
321322
@ color: white;
322323
@ }
323324
@
324325
@ /* The submenu bar that *sometimes* appears below the main menu */
325
-@ div.submenu {
326
+@ div.submenu, div.sectionmenu {
326327
@ padding: 3px 10px 3px 0px;
327328
@ font-size: 0.9em;
328329
@ text-align: center;
329330
@ background-color: #456878;
330331
@ color: white;
331332
@ }
332
-@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
333
+@ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
334
+@ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
333335
@ padding: 3px 10px 3px 10px;
334336
@ color: white;
335337
@ text-decoration: none;
336338
@ }
337
-@ div.mainmenu a:hover, div.submenu a:hover {
339
+@ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
338340
@ color: #558195;
339341
@ background-color: white;
340342
@ }
341343
@
342344
@ /* All page content from the bottom of the menu or submenu down to
@@ -529,11 +531,11 @@
529531
@ vertical-align: top;
530532
@ text-align: right;
531533
},
532534
{ "td.timelineGraph",
533535
"the format for the grap placeholder cells in timelines",
534
- @ width: 20;
536
+ @ width: 20px;
535537
@ text-align: left;
536538
@ vertical-align: top;
537539
},
538540
{ "a.tagLink",
539541
"the format for the tag links",
@@ -623,11 +625,11 @@
623625
@ vertical-align: top
624626
},
625627
{ "table.usetupUserList",
626628
"format for the user list table on the user setup page",
627629
@ outline-style: double;
628
- @ outline-width: 1;
630
+ @ outline-width: 1px;
629631
@ padding: 10px;
630632
},
631633
{ "th.usetupListUser",
632634
"format for table header user in user list on user setup page",
633635
@ text-align: right;
@@ -747,17 +749,17 @@
747749
@ border-color: #000000;
748750
@ border-style: solid;
749751
},
750752
{ "input.checkinUserColor",
751753
"format for user color input on checkin edit page",
752
- @ # no special definitions, class defined, to enable color pickers, f.e.:
753
- @ # add the color picker found at http:jscolor.com as java script include
754
- @ # to the header and configure the java script file with
755
- @ # 1. use as bindClass :checkinUserColor
756
- @ # 2. change the default hash adding behaviour to ON
757
- @ # or change the class defition of element identified by id="clrcust"
758
- @ # to a standard jscolor definition with java script in the footer.
754
+ @ /* no special definitions, class defined, to enable color pickers, f.e.:
755
+ @ ** add the color picker found at http:jscolor.com as java script include
756
+ @ ** to the header and configure the java script file with
757
+ @ ** 1. use as bindClass :checkinUserColor
758
+ @ ** 2. change the default hash adding behaviour to ON
759
+ @ ** or change the class defition of element identified by id="clrcust"
760
+ @ ** to a standard jscolor definition with java script in the footer. */
759761
},
760762
{ "div.endContent",
761763
"format for end of content area, to be used to clear page flow(sidebox on branch,..",
762764
@ clear: both;
763765
},
@@ -777,11 +779,11 @@
777779
},
778780
{ "span.thTrace",
779781
"format for th script trace messages",
780782
@ color: red;
781783
},
782
- { "p:reportError",
784
+ { "p.reportError",
783785
"format for report configuration errors",
784786
@ color: red;
785787
@ font-weight: bold;
786788
},
787789
{ "blockquote.reportError",
788790
--- src/style.c
+++ src/style.c
@@ -210,37 +210,38 @@
210 @ } else {
211 @ puts "Not logged in"
212 @ }
213 @ </th1></div>
214 @ </div>
215 @ <div class="mainmenu"><th1>
216 @ html "<a href='$home$index_page'>Home</a> "
 
217 @ if {[anycap jor]} {
218 @ html "<a href='$home/timeline'>Timeline</a> "
219 @ }
220 @ if {[hascap oh]} {
221 @ html "<a href='$home/dir?ci=tip'>Files</a> "
222 @ }
223 @ if {[hascap o]} {
224 @ html "<a href='$home/brlist'>Branches</a> "
225 @ html "<a href='$home/taglist'>Tags</a> "
226 @ }
227 @ if {[hascap r]} {
228 @ html "<a href='$home/reportlist'>Tickets</a> "
229 @ }
230 @ if {[hascap j]} {
231 @ html "<a href='$home/wiki'>Wiki</a> "
232 @ }
233 @ if {[hascap s]} {
234 @ html "<a href='$home/setup'>Admin</a> "
235 @ } elseif {[hascap a]} {
236 @ html "<a href='$home/setup_ulist'>Users</a> "
237 @ }
238 @ if {[info exists login]} {
239 @ html "<a href='$home/login'>Logout</a> "
240 @ } else {
241 @ html "<a href='$home/login'>Login</a> "
242 @ }
243 @ </th1></div>
244 ;
245
246 /*
@@ -320,23 +321,24 @@
320 @ background-color: #558195;
321 @ color: white;
322 @ }
323 @
324 @ /* The submenu bar that *sometimes* appears below the main menu */
325 @ div.submenu {
326 @ padding: 3px 10px 3px 0px;
327 @ font-size: 0.9em;
328 @ text-align: center;
329 @ background-color: #456878;
330 @ color: white;
331 @ }
332 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited {
 
333 @ padding: 3px 10px 3px 10px;
334 @ color: white;
335 @ text-decoration: none;
336 @ }
337 @ div.mainmenu a:hover, div.submenu a:hover {
338 @ color: #558195;
339 @ background-color: white;
340 @ }
341 @
342 @ /* All page content from the bottom of the menu or submenu down to
@@ -529,11 +531,11 @@
529 @ vertical-align: top;
530 @ text-align: right;
531 },
532 { "td.timelineGraph",
533 "the format for the grap placeholder cells in timelines",
534 @ width: 20;
535 @ text-align: left;
536 @ vertical-align: top;
537 },
538 { "a.tagLink",
539 "the format for the tag links",
@@ -623,11 +625,11 @@
623 @ vertical-align: top
624 },
625 { "table.usetupUserList",
626 "format for the user list table on the user setup page",
627 @ outline-style: double;
628 @ outline-width: 1;
629 @ padding: 10px;
630 },
631 { "th.usetupListUser",
632 "format for table header user in user list on user setup page",
633 @ text-align: right;
@@ -747,17 +749,17 @@
747 @ border-color: #000000;
748 @ border-style: solid;
749 },
750 { "input.checkinUserColor",
751 "format for user color input on checkin edit page",
752 @ # no special definitions, class defined, to enable color pickers, f.e.:
753 @ # add the color picker found at http:jscolor.com as java script include
754 @ # to the header and configure the java script file with
755 @ # 1. use as bindClass :checkinUserColor
756 @ # 2. change the default hash adding behaviour to ON
757 @ # or change the class defition of element identified by id="clrcust"
758 @ # to a standard jscolor definition with java script in the footer.
759 },
760 { "div.endContent",
761 "format for end of content area, to be used to clear page flow(sidebox on branch,..",
762 @ clear: both;
763 },
@@ -777,11 +779,11 @@
777 },
778 { "span.thTrace",
779 "format for th script trace messages",
780 @ color: red;
781 },
782 { "p:reportError",
783 "format for report configuration errors",
784 @ color: red;
785 @ font-weight: bold;
786 },
787 { "blockquote.reportError",
788
--- src/style.c
+++ src/style.c
@@ -210,37 +210,38 @@
210 @ } else {
211 @ puts "Not logged in"
212 @ }
213 @ </th1></div>
214 @ </div>
215 @ <div class="mainmenu">
216 @ <th1>
217 @ html "<a href='$home$index_page'>Home</a>\n"
218 @ if {[anycap jor]} {
219 @ html "<a href='$home/timeline'>Timeline</a>\n"
220 @ }
221 @ if {[hascap oh]} {
222 @ html "<a href='$home/dir?ci=tip'>Files</a>\n"
223 @ }
224 @ if {[hascap o]} {
225 @ html "<a href='$home/brlist'>Branches</a>\n"
226 @ html "<a href='$home/taglist'>Tags</a>\n"
227 @ }
228 @ if {[hascap r]} {
229 @ html "<a href='$home/reportlist'>Tickets</a>\n"
230 @ }
231 @ if {[hascap j]} {
232 @ html "<a href='$home/wiki'>Wiki</a>\n"
233 @ }
234 @ if {[hascap s]} {
235 @ html "<a href='$home/setup'>Admin</a>\n"
236 @ } elseif {[hascap a]} {
237 @ html "<a href='$home/setup_ulist'>Users</a>\n"
238 @ }
239 @ if {[info exists login]} {
240 @ html "<a href='$home/login'>Logout</a>\n"
241 @ } else {
242 @ html "<a href='$home/login'>Login</a>\n"
243 @ }
244 @ </th1></div>
245 ;
246
247 /*
@@ -320,23 +321,24 @@
321 @ background-color: #558195;
322 @ color: white;
323 @ }
324 @
325 @ /* The submenu bar that *sometimes* appears below the main menu */
326 @ div.submenu, div.sectionmenu {
327 @ padding: 3px 10px 3px 0px;
328 @ font-size: 0.9em;
329 @ text-align: center;
330 @ background-color: #456878;
331 @ color: white;
332 @ }
333 @ div.mainmenu a, div.mainmenu a:visited, div.submenu a, div.submenu a:visited,
334 @ div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited {
335 @ padding: 3px 10px 3px 10px;
336 @ color: white;
337 @ text-decoration: none;
338 @ }
339 @ div.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover {
340 @ color: #558195;
341 @ background-color: white;
342 @ }
343 @
344 @ /* All page content from the bottom of the menu or submenu down to
@@ -529,11 +531,11 @@
531 @ vertical-align: top;
532 @ text-align: right;
533 },
534 { "td.timelineGraph",
535 "the format for the grap placeholder cells in timelines",
536 @ width: 20px;
537 @ text-align: left;
538 @ vertical-align: top;
539 },
540 { "a.tagLink",
541 "the format for the tag links",
@@ -623,11 +625,11 @@
625 @ vertical-align: top
626 },
627 { "table.usetupUserList",
628 "format for the user list table on the user setup page",
629 @ outline-style: double;
630 @ outline-width: 1px;
631 @ padding: 10px;
632 },
633 { "th.usetupListUser",
634 "format for table header user in user list on user setup page",
635 @ text-align: right;
@@ -747,17 +749,17 @@
749 @ border-color: #000000;
750 @ border-style: solid;
751 },
752 { "input.checkinUserColor",
753 "format for user color input on checkin edit page",
754 @ /* no special definitions, class defined, to enable color pickers, f.e.:
755 @ ** add the color picker found at http:jscolor.com as java script include
756 @ ** to the header and configure the java script file with
757 @ ** 1. use as bindClass :checkinUserColor
758 @ ** 2. change the default hash adding behaviour to ON
759 @ ** or change the class defition of element identified by id="clrcust"
760 @ ** to a standard jscolor definition with java script in the footer. */
761 },
762 { "div.endContent",
763 "format for end of content area, to be used to clear page flow(sidebox on branch,..",
764 @ clear: both;
765 },
@@ -777,11 +779,11 @@
779 },
780 { "span.thTrace",
781 "format for th script trace messages",
782 @ color: red;
783 },
784 { "p.reportError",
785 "format for report configuration errors",
786 @ color: red;
787 @ font-weight: bold;
788 },
789 { "blockquote.reportError",
790
+1 -1
--- src/update.c
+++ src/update.c
@@ -465,11 +465,11 @@
465465
}else{
466466
fossil_print("WARNING: %d merge conflicts", nConflict);
467467
}
468468
}
469469
if( nOverwrite ){
470
- fossil_warning("WARNING: %d unmanaged files where overwritten",
470
+ fossil_warning("WARNING: %d unmanaged files were overwritten",
471471
nOverwrite);
472472
}
473473
}
474474
475475
/*
476476
--- src/update.c
+++ src/update.c
@@ -465,11 +465,11 @@
465 }else{
466 fossil_print("WARNING: %d merge conflicts", nConflict);
467 }
468 }
469 if( nOverwrite ){
470 fossil_warning("WARNING: %d unmanaged files where overwritten",
471 nOverwrite);
472 }
473 }
474
475 /*
476
--- src/update.c
+++ src/update.c
@@ -465,11 +465,11 @@
465 }else{
466 fossil_print("WARNING: %d merge conflicts", nConflict);
467 }
468 }
469 if( nOverwrite ){
470 fossil_warning("WARNING: %d unmanaged files were overwritten",
471 nOverwrite);
472 }
473 }
474
475 /*
476

Keyboard Shortcuts

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