Fossil SCM

Remove unnecessary spaces at end-of-lines. No change in functionality.

jan.nijtmans 2014-02-28 10:34 trunk
Commit 3df526ca41bde7564178db3a8ea408e50d631f36
+3 -3
--- src/checkout.c
+++ src/checkout.c
@@ -157,11 +157,11 @@
157157
zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
158158
file_delete(zManFile);
159159
free(zManFile);
160160
}
161161
}
162
-
162
+
163163
}
164164
165165
/*
166166
** COMMAND: checkout*
167167
** COMMAND: co*
@@ -175,11 +175,11 @@
175175
** leaves files on disk unchanged, except the manifest and manifest.uuid
176176
** files.
177177
**
178178
** The --latest flag can be used in place of VERSION to checkout the
179179
** latest version in the repository.
180
-**
180
+**
181181
** Options:
182182
** --force Ignore edited files in the current checkout
183183
** --keep Only update the manifest and manifest.uuid files
184184
**
185185
** See also: update
@@ -190,11 +190,11 @@
190190
int latestFlag; /* Checkout the latest version */
191191
char *zVers; /* Version to checkout */
192192
int promptFlag; /* True to prompt before overwriting */
193193
int vid, prior;
194194
Blob cksum1, cksum1b, cksum2;
195
-
195
+
196196
db_must_be_within_tree();
197197
db_begin_transaction();
198198
forceFlag = find_option("force","f",0)!=0;
199199
keepFlag = find_option("keep",0,0)!=0;
200200
latestFlag = find_option("latest",0,0)!=0;
201201
--- src/checkout.c
+++ src/checkout.c
@@ -157,11 +157,11 @@
157 zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
158 file_delete(zManFile);
159 free(zManFile);
160 }
161 }
162
163 }
164
165 /*
166 ** COMMAND: checkout*
167 ** COMMAND: co*
@@ -175,11 +175,11 @@
175 ** leaves files on disk unchanged, except the manifest and manifest.uuid
176 ** files.
177 **
178 ** The --latest flag can be used in place of VERSION to checkout the
179 ** latest version in the repository.
180 **
181 ** Options:
182 ** --force Ignore edited files in the current checkout
183 ** --keep Only update the manifest and manifest.uuid files
184 **
185 ** See also: update
@@ -190,11 +190,11 @@
190 int latestFlag; /* Checkout the latest version */
191 char *zVers; /* Version to checkout */
192 int promptFlag; /* True to prompt before overwriting */
193 int vid, prior;
194 Blob cksum1, cksum1b, cksum2;
195
196 db_must_be_within_tree();
197 db_begin_transaction();
198 forceFlag = find_option("force","f",0)!=0;
199 keepFlag = find_option("keep",0,0)!=0;
200 latestFlag = find_option("latest",0,0)!=0;
201
--- src/checkout.c
+++ src/checkout.c
@@ -157,11 +157,11 @@
157 zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
158 file_delete(zManFile);
159 free(zManFile);
160 }
161 }
162
163 }
164
165 /*
166 ** COMMAND: checkout*
167 ** COMMAND: co*
@@ -175,11 +175,11 @@
175 ** leaves files on disk unchanged, except the manifest and manifest.uuid
176 ** files.
177 **
178 ** The --latest flag can be used in place of VERSION to checkout the
179 ** latest version in the repository.
180 **
181 ** Options:
182 ** --force Ignore edited files in the current checkout
183 ** --keep Only update the manifest and manifest.uuid files
184 **
185 ** See also: update
@@ -190,11 +190,11 @@
190 int latestFlag; /* Checkout the latest version */
191 char *zVers; /* Version to checkout */
192 int promptFlag; /* True to prompt before overwriting */
193 int vid, prior;
194 Blob cksum1, cksum1b, cksum2;
195
196 db_must_be_within_tree();
197 db_begin_transaction();
198 forceFlag = find_option("force","f",0)!=0;
199 keepFlag = find_option("keep",0,0)!=0;
200 latestFlag = find_option("latest",0,0)!=0;
201
+4 -4
--- src/diff.c
+++ src/diff.c
@@ -1305,11 +1305,11 @@
13051305
sbsWriteMarker(&s, " ", "");
13061306
sbsWriteLineno(&s, b+j, SBS_LNB);
13071307
sbsWriteText(&s, &B[b+j], SBS_TXTB);
13081308
}
13091309
}
1310
-
1310
+
13111311
if( s.escHtml && blob_size(s.apCols[SBS_LNA])>0 ){
13121312
blob_append(pOut, "<table class=\"sbsdiffcols\"><tr>\n", -1);
13131313
for(i=SBS_LNA; i<=SBS_TXTB; i++){
13141314
sbsWriteColumn(pOut, s.apCols[i], i);
13151315
blob_reset(s.apCols[i]);
@@ -2140,11 +2140,11 @@
21402140
void annotation_page(void){
21412141
int mid;
21422142
int fnid;
21432143
int i;
21442144
int iLimit; /* Depth limit */
2145
- int annFlags = ANN_FILE_ANCEST;
2145
+ int annFlags = ANN_FILE_ANCEST;
21462146
int showLog = 0; /* True to display the log */
21472147
const char *zFilename; /* Name of file to annotate */
21482148
const char *zCI; /* The check-in containing zFilename */
21492149
Annotator ann;
21502150
HQuery url;
@@ -2208,11 +2208,11 @@
22082208
clr2 = 0xb5e0ff; /* Older changes: blue (cold) */
22092209
}
22102210
for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
22112211
clr = gradient_color(clr1, clr2, ann.nVers-1, i);
22122212
ann.aVers[i].zBgColor = mprintf("#%06x", clr);
2213
- }
2213
+ }
22142214
22152215
if( showLog ){
22162216
char *zLink = href("%R/finfo?name=%t&ci=%S",zFilename,zCI);
22172217
@ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
22182218
@ <ol>
@@ -2238,11 +2238,11 @@
22382238
}
22392239
@ </ol>
22402240
@ <hr>
22412241
}
22422242
if( !ann.bLimit ){
2243
- @ <h2>Origin for each line in
2243
+ @ <h2>Origin for each line in
22442244
@ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a>
22452245
@ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2>
22462246
iLimit = ann.nVers+10;
22472247
}else{
22482248
@ <h2>Lines added by the %d(iLimit) most recent ancestors of
22492249
--- src/diff.c
+++ src/diff.c
@@ -1305,11 +1305,11 @@
1305 sbsWriteMarker(&s, " ", "");
1306 sbsWriteLineno(&s, b+j, SBS_LNB);
1307 sbsWriteText(&s, &B[b+j], SBS_TXTB);
1308 }
1309 }
1310
1311 if( s.escHtml && blob_size(s.apCols[SBS_LNA])>0 ){
1312 blob_append(pOut, "<table class=\"sbsdiffcols\"><tr>\n", -1);
1313 for(i=SBS_LNA; i<=SBS_TXTB; i++){
1314 sbsWriteColumn(pOut, s.apCols[i], i);
1315 blob_reset(s.apCols[i]);
@@ -2140,11 +2140,11 @@
2140 void annotation_page(void){
2141 int mid;
2142 int fnid;
2143 int i;
2144 int iLimit; /* Depth limit */
2145 int annFlags = ANN_FILE_ANCEST;
2146 int showLog = 0; /* True to display the log */
2147 const char *zFilename; /* Name of file to annotate */
2148 const char *zCI; /* The check-in containing zFilename */
2149 Annotator ann;
2150 HQuery url;
@@ -2208,11 +2208,11 @@
2208 clr2 = 0xb5e0ff; /* Older changes: blue (cold) */
2209 }
2210 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2211 clr = gradient_color(clr1, clr2, ann.nVers-1, i);
2212 ann.aVers[i].zBgColor = mprintf("#%06x", clr);
2213 }
2214
2215 if( showLog ){
2216 char *zLink = href("%R/finfo?name=%t&ci=%S",zFilename,zCI);
2217 @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
2218 @ <ol>
@@ -2238,11 +2238,11 @@
2238 }
2239 @ </ol>
2240 @ <hr>
2241 }
2242 if( !ann.bLimit ){
2243 @ <h2>Origin for each line in
2244 @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a>
2245 @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2>
2246 iLimit = ann.nVers+10;
2247 }else{
2248 @ <h2>Lines added by the %d(iLimit) most recent ancestors of
2249
--- src/diff.c
+++ src/diff.c
@@ -1305,11 +1305,11 @@
1305 sbsWriteMarker(&s, " ", "");
1306 sbsWriteLineno(&s, b+j, SBS_LNB);
1307 sbsWriteText(&s, &B[b+j], SBS_TXTB);
1308 }
1309 }
1310
1311 if( s.escHtml && blob_size(s.apCols[SBS_LNA])>0 ){
1312 blob_append(pOut, "<table class=\"sbsdiffcols\"><tr>\n", -1);
1313 for(i=SBS_LNA; i<=SBS_TXTB; i++){
1314 sbsWriteColumn(pOut, s.apCols[i], i);
1315 blob_reset(s.apCols[i]);
@@ -2140,11 +2140,11 @@
2140 void annotation_page(void){
2141 int mid;
2142 int fnid;
2143 int i;
2144 int iLimit; /* Depth limit */
2145 int annFlags = ANN_FILE_ANCEST;
2146 int showLog = 0; /* True to display the log */
2147 const char *zFilename; /* Name of file to annotate */
2148 const char *zCI; /* The check-in containing zFilename */
2149 Annotator ann;
2150 HQuery url;
@@ -2208,11 +2208,11 @@
2208 clr2 = 0xb5e0ff; /* Older changes: blue (cold) */
2209 }
2210 for(p=ann.aVers, i=0; i<ann.nVers; i++, p++){
2211 clr = gradient_color(clr1, clr2, ann.nVers-1, i);
2212 ann.aVers[i].zBgColor = mprintf("#%06x", clr);
2213 }
2214
2215 if( showLog ){
2216 char *zLink = href("%R/finfo?name=%t&ci=%S",zFilename,zCI);
2217 @ <h2>Ancestors of %z(zLink)%h(zFilename)</a> analyzed:</h2>
2218 @ <ol>
@@ -2238,11 +2238,11 @@
2238 }
2239 @ </ol>
2240 @ <hr>
2241 }
2242 if( !ann.bLimit ){
2243 @ <h2>Origin for each line in
2244 @ %z(href("%R/finfo?name=%h&ci=%S", zFilename, zCI))%h(zFilename)</a>
2245 @ from check-in %z(href("%R/info/%S",zCI))%S(zCI)</a>:</h2>
2246 iLimit = ann.nVers+10;
2247 }else{
2248 @ <h2>Lines added by the %d(iLimit) most recent ancestors of
2249
+32 -32
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -610,11 +610,11 @@
610610
/* A Tcl/Tk script used to render diff output.
611611
*/
612612
static const char zDiffScript[] =
613613
@ set prog {
614614
@ package require Tk
615
-@
615
+@
616616
@ array set CFG {
617617
@ TITLE {Fossil Diff}
618618
@ LN_COL_BG #dddddd
619619
@ LN_COL_FG #444444
620620
@ TXT_COL_BG #ffffff
@@ -633,38 +633,38 @@
633633
@ PADX 5
634634
@ WIDTH 80
635635
@ HEIGHT 45
636636
@ LB_HEIGHT 25
637637
@ }
638
-@
638
+@
639639
@ if {![namespace exists ttk]} {
640640
@ interp alias {} ::ttk::scrollbar {} ::scrollbar
641641
@ interp alias {} ::ttk::menubutton {} ::menubutton
642642
@ }
643
-@
643
+@
644644
@ proc dehtml {x} {
645645
@ set x [regsub -all {<[^>]*>} $x {}]
646646
@ return [string map {&amp; & &lt; < &gt; > &#39; ' &quot; \"} $x]
647647
@ }
648
-@
648
+@
649649
@ proc cols {} {
650650
@ return [list .lnA .txtA .mkr .lnB .txtB]
651651
@ }
652
-@
652
+@
653653
@ proc colType {c} {
654654
@ regexp {[a-z]+} $c type
655655
@ return $type
656656
@ }
657
-@
657
+@
658658
@ proc getLine {difftxt N iivar} {
659659
@ upvar $iivar ii
660660
@ if {$ii>=$N} {return -1}
661661
@ set x [lindex $difftxt $ii]
662662
@ incr ii
663663
@ return $x
664664
@ }
665
-@
665
+@
666666
@ proc readDiffs {fossilcmd} {
667667
@ global difftxt
668668
@ if {![info exists difftxt]} {
669669
@ set in [open $fossilcmd r]
670670
@ fconfigure $in -encoding utf-8
@@ -686,14 +686,14 @@
686686
@ continue
687687
@ }
688688
@ incr nDiffs
689689
@ set idx [expr {$nDiffs > 1 ? [.txtA index end] : "1.0"}]
690690
@ .wfiles.lb insert end $fn
691
-@
691
+@
692692
@ foreach c [cols] {
693693
@ while {[getLine $difftxt $N ii] ne "<pre>"} continue
694
-@
694
+@
695695
@ if {$nDiffs > 1} {
696696
@ $c insert end \n -
697697
@ }
698698
@ if {[colType $c] eq "txt"} {
699699
@ $c insert end $fn\n fn
@@ -700,21 +700,21 @@
700700
@ if {$fn2!=""} {set fn $fn2}
701701
@ } else {
702702
@ $c insert end \n fn
703703
@ }
704704
@ $c insert end \n -
705
-@
705
+@
706706
@ set type [colType $c]
707707
@ set str {}
708708
@ while {[set line [getLine $difftxt $N ii]] ne "</pre>"} {
709709
@ set len [string length [dehtml $line]]
710710
@ if {$len > $widths($type)} {
711711
@ set widths($type) $len
712712
@ }
713713
@ append str $line\n
714714
@ }
715
-@
715
+@
716716
@ set re {<span class="diff([a-z]+)">([^<]*)</span>}
717717
@ # Use \r as separator since it can't appear in the diff output (it gets
718718
@ # converted to a space).
719719
@ set str [regsub -all $re $str "\r\\1\r\\2\r"]
720720
@ foreach {pre class mid} [split $str \r] {
@@ -724,11 +724,11 @@
724724
@ $c insert end [dehtml $pre] -
725725
@ }
726726
@ }
727727
@ }
728728
@ }
729
-@
729
+@
730730
@ foreach c [cols] {
731731
@ set type [colType $c]
732732
@ if {$type ne "txt"} {
733733
@ $c config -width $widths($type)
734734
@ }
@@ -736,19 +736,19 @@
736736
@ }
737737
@ if {$nDiffs <= [.wfiles.lb cget -height]} {
738738
@ .wfiles.lb config -height $nDiffs
739739
@ grid remove .wfiles.sb
740740
@ }
741
-@
741
+@
742742
@ return $nDiffs
743743
@ }
744
-@
744
+@
745745
@ proc viewDiff {idx} {
746746
@ .txtA yview $idx
747747
@ .txtA xview moveto 0
748748
@ }
749
-@
749
+@
750750
@ proc cycleDiffs {{reverse 0}} {
751751
@ if {$reverse} {
752752
@ set range [.txtA tag prevrange fn @0,0 1.0]
753753
@ if {$range eq ""} {
754754
@ viewDiff {fn.last -1c}
@@ -762,36 +762,36 @@
762762
@ } else {
763763
@ viewDiff [lindex $range 0]
764764
@ }
765765
@ }
766766
@ }
767
-@
767
+@
768768
@ proc xvis {col} {
769769
@ set view [$col xview]
770770
@ return [expr {[lindex $view 1]-[lindex $view 0]}]
771771
@ }
772
-@
772
+@
773773
@ proc scroll-x {args} {
774774
@ set c .txt[expr {[xvis .txtA] < [xvis .txtB] ? "A" : "B"}]
775775
@ eval $c xview $args
776776
@ }
777
-@
777
+@
778778
@ interp alias {} scroll-y {} .txtA yview
779
-@
779
+@
780780
@ proc noop {args} {}
781
-@
781
+@
782782
@ proc enableSync {axis} {
783783
@ update idletasks
784784
@ interp alias {} sync-$axis {}
785785
@ rename _sync-$axis sync-$axis
786786
@ }
787
-@
787
+@
788788
@ proc disableSync {axis} {
789789
@ rename sync-$axis _sync-$axis
790790
@ interp alias {} sync-$axis {} noop
791791
@ }
792
-@
792
+@
793793
@ proc sync-x {col first last} {
794794
@ disableSync x
795795
@ $col xview moveto [expr {$first*[xvis $col]/($last-$first)}]
796796
@ foreach side {A B} {
797797
@ set sb .sbx$side
@@ -803,11 +803,11 @@
803803
@ grid remove $sb
804804
@ }
805805
@ }
806806
@ enableSync x
807807
@ }
808
-@
808
+@
809809
@ proc sync-y {first last} {
810810
@ disableSync y
811811
@ foreach c [cols] {
812812
@ $c yview moveto $first
813813
@ }
@@ -817,11 +817,11 @@
817817
@ } else {
818818
@ grid remove .sby
819819
@ }
820820
@ enableSync y
821821
@ }
822
-@
822
+@
823823
@ wm withdraw .
824824
@ wm title . $CFG(TITLE)
825825
@ wm iconname . $CFG(TITLE)
826826
@ bind . <q> exit
827827
@ bind . <Destroy> {after 0 exit}
@@ -843,11 +843,11 @@
843843
@ End y {moveto 1}
844844
@ } {
845845
@ bind . <$key> "scroll-$axis $args; break"
846846
@ bind . <Shift-$key> continue
847847
@ }
848
-@
848
+@
849849
@ frame .bb
850850
@ ::ttk::menubutton .bb.files -text "Files"
851851
@ toplevel .wfiles
852852
@ wm withdraw .wfiles
853853
@ update idletasks
@@ -878,16 +878,16 @@
878878
@ }
879879
@ bind .wfiles.lb <Motion> {
880880
@ %W selection clear 0 end
881881
@ %W selection set @%x,%y
882882
@ }
883
-@
883
+@
884884
@ foreach {side syncCol} {A .txtB B .txtA} {
885885
@ set ln .ln$side
886886
@ text $ln
887887
@ $ln tag config - -justify right
888
-@
888
+@
889889
@ set txt .txt$side
890890
@ text $txt -width $CFG(WIDTH) -height $CFG(HEIGHT) -wrap none \
891891
@ -xscroll "sync-x $syncCol"
892892
@ catch {$txt config -tabstyle wordprocessor} ;# Required for Tk>=8.5
893893
@ foreach tag {add rm chng} {
@@ -896,11 +896,11 @@
896896
@ }
897897
@ $txt tag config fn -background $CFG(FN_BG) -foreground $CFG(FN_FG) \
898898
@ -justify center
899899
@ }
900900
@ text .mkr
901
-@
901
+@
902902
@ foreach c [cols] {
903903
@ set keyPrefix [string toupper [colType $c]]_COL_
904904
@ if {[tk windowingsystem] eq "win32"} {$c config -font {courier 9}}
905905
@ $c config -bg $CFG(${keyPrefix}BG) -fg $CFG(${keyPrefix}FG) -borderwidth 0 \
906906
@ -padx $CFG(PADX) -yscroll sync-y
@@ -908,22 +908,22 @@
908908
@ -foreground $CFG(HR_FG)
909909
@ $c tag config fn -spacing1 $CFG(FN_PAD) -spacing3 $CFG(FN_PAD)
910910
@ bindtags $c ". $c Text all"
911911
@ bind $c <1> {focus %W}
912912
@ }
913
-@
913
+@
914914
@ ::ttk::scrollbar .sby -command {.txtA yview} -orient vertical
915915
@ ::ttk::scrollbar .sbxA -command {.txtA xview} -orient horizontal
916916
@ ::ttk::scrollbar .sbxB -command {.txtB xview} -orient horizontal
917917
@ frame .spacer
918
-@
918
+@
919919
@ if {[readDiffs $fossilcmd] == 0} {
920920
@ tk_messageBox -type ok -title $CFG(TITLE) -message "No changes"
921921
@ exit
922922
@ }
923923
@ update idletasks
924
-@
924
+@
925925
@ proc saveDiff {} {
926926
@ set fn [tk_getSaveFile]
927927
@ set out [open $fn wb]
928928
@ puts $out "#!/usr/bin/tclsh\n#\n# Run this script using 'tclsh' or 'wish'"
929929
@ puts $out "# to see the graphical diff.\n#"
@@ -947,11 +947,11 @@
947947
@ eval grid [cols] -row 1 -sticky nsew
948948
@ grid .sby -row 1 -column 5 -sticky ns
949949
@ grid .sbxA -row 2 -columnspan 2 -sticky ew
950950
@ grid .spacer -row 2 -column 2
951951
@ grid .sbxB -row 2 -column 3 -columnspan 2 -sticky ew
952
-@
952
+@
953953
@ .spacer config -height [winfo height .sbxA]
954954
@ wm deiconify .
955955
@ }
956956
@ eval $prog
957957
;
958958
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -610,11 +610,11 @@
610 /* A Tcl/Tk script used to render diff output.
611 */
612 static const char zDiffScript[] =
613 @ set prog {
614 @ package require Tk
615 @
616 @ array set CFG {
617 @ TITLE {Fossil Diff}
618 @ LN_COL_BG #dddddd
619 @ LN_COL_FG #444444
620 @ TXT_COL_BG #ffffff
@@ -633,38 +633,38 @@
633 @ PADX 5
634 @ WIDTH 80
635 @ HEIGHT 45
636 @ LB_HEIGHT 25
637 @ }
638 @
639 @ if {![namespace exists ttk]} {
640 @ interp alias {} ::ttk::scrollbar {} ::scrollbar
641 @ interp alias {} ::ttk::menubutton {} ::menubutton
642 @ }
643 @
644 @ proc dehtml {x} {
645 @ set x [regsub -all {<[^>]*>} $x {}]
646 @ return [string map {&amp; & &lt; < &gt; > &#39; ' &quot; \"} $x]
647 @ }
648 @
649 @ proc cols {} {
650 @ return [list .lnA .txtA .mkr .lnB .txtB]
651 @ }
652 @
653 @ proc colType {c} {
654 @ regexp {[a-z]+} $c type
655 @ return $type
656 @ }
657 @
658 @ proc getLine {difftxt N iivar} {
659 @ upvar $iivar ii
660 @ if {$ii>=$N} {return -1}
661 @ set x [lindex $difftxt $ii]
662 @ incr ii
663 @ return $x
664 @ }
665 @
666 @ proc readDiffs {fossilcmd} {
667 @ global difftxt
668 @ if {![info exists difftxt]} {
669 @ set in [open $fossilcmd r]
670 @ fconfigure $in -encoding utf-8
@@ -686,14 +686,14 @@
686 @ continue
687 @ }
688 @ incr nDiffs
689 @ set idx [expr {$nDiffs > 1 ? [.txtA index end] : "1.0"}]
690 @ .wfiles.lb insert end $fn
691 @
692 @ foreach c [cols] {
693 @ while {[getLine $difftxt $N ii] ne "<pre>"} continue
694 @
695 @ if {$nDiffs > 1} {
696 @ $c insert end \n -
697 @ }
698 @ if {[colType $c] eq "txt"} {
699 @ $c insert end $fn\n fn
@@ -700,21 +700,21 @@
700 @ if {$fn2!=""} {set fn $fn2}
701 @ } else {
702 @ $c insert end \n fn
703 @ }
704 @ $c insert end \n -
705 @
706 @ set type [colType $c]
707 @ set str {}
708 @ while {[set line [getLine $difftxt $N ii]] ne "</pre>"} {
709 @ set len [string length [dehtml $line]]
710 @ if {$len > $widths($type)} {
711 @ set widths($type) $len
712 @ }
713 @ append str $line\n
714 @ }
715 @
716 @ set re {<span class="diff([a-z]+)">([^<]*)</span>}
717 @ # Use \r as separator since it can't appear in the diff output (it gets
718 @ # converted to a space).
719 @ set str [regsub -all $re $str "\r\\1\r\\2\r"]
720 @ foreach {pre class mid} [split $str \r] {
@@ -724,11 +724,11 @@
724 @ $c insert end [dehtml $pre] -
725 @ }
726 @ }
727 @ }
728 @ }
729 @
730 @ foreach c [cols] {
731 @ set type [colType $c]
732 @ if {$type ne "txt"} {
733 @ $c config -width $widths($type)
734 @ }
@@ -736,19 +736,19 @@
736 @ }
737 @ if {$nDiffs <= [.wfiles.lb cget -height]} {
738 @ .wfiles.lb config -height $nDiffs
739 @ grid remove .wfiles.sb
740 @ }
741 @
742 @ return $nDiffs
743 @ }
744 @
745 @ proc viewDiff {idx} {
746 @ .txtA yview $idx
747 @ .txtA xview moveto 0
748 @ }
749 @
750 @ proc cycleDiffs {{reverse 0}} {
751 @ if {$reverse} {
752 @ set range [.txtA tag prevrange fn @0,0 1.0]
753 @ if {$range eq ""} {
754 @ viewDiff {fn.last -1c}
@@ -762,36 +762,36 @@
762 @ } else {
763 @ viewDiff [lindex $range 0]
764 @ }
765 @ }
766 @ }
767 @
768 @ proc xvis {col} {
769 @ set view [$col xview]
770 @ return [expr {[lindex $view 1]-[lindex $view 0]}]
771 @ }
772 @
773 @ proc scroll-x {args} {
774 @ set c .txt[expr {[xvis .txtA] < [xvis .txtB] ? "A" : "B"}]
775 @ eval $c xview $args
776 @ }
777 @
778 @ interp alias {} scroll-y {} .txtA yview
779 @
780 @ proc noop {args} {}
781 @
782 @ proc enableSync {axis} {
783 @ update idletasks
784 @ interp alias {} sync-$axis {}
785 @ rename _sync-$axis sync-$axis
786 @ }
787 @
788 @ proc disableSync {axis} {
789 @ rename sync-$axis _sync-$axis
790 @ interp alias {} sync-$axis {} noop
791 @ }
792 @
793 @ proc sync-x {col first last} {
794 @ disableSync x
795 @ $col xview moveto [expr {$first*[xvis $col]/($last-$first)}]
796 @ foreach side {A B} {
797 @ set sb .sbx$side
@@ -803,11 +803,11 @@
803 @ grid remove $sb
804 @ }
805 @ }
806 @ enableSync x
807 @ }
808 @
809 @ proc sync-y {first last} {
810 @ disableSync y
811 @ foreach c [cols] {
812 @ $c yview moveto $first
813 @ }
@@ -817,11 +817,11 @@
817 @ } else {
818 @ grid remove .sby
819 @ }
820 @ enableSync y
821 @ }
822 @
823 @ wm withdraw .
824 @ wm title . $CFG(TITLE)
825 @ wm iconname . $CFG(TITLE)
826 @ bind . <q> exit
827 @ bind . <Destroy> {after 0 exit}
@@ -843,11 +843,11 @@
843 @ End y {moveto 1}
844 @ } {
845 @ bind . <$key> "scroll-$axis $args; break"
846 @ bind . <Shift-$key> continue
847 @ }
848 @
849 @ frame .bb
850 @ ::ttk::menubutton .bb.files -text "Files"
851 @ toplevel .wfiles
852 @ wm withdraw .wfiles
853 @ update idletasks
@@ -878,16 +878,16 @@
878 @ }
879 @ bind .wfiles.lb <Motion> {
880 @ %W selection clear 0 end
881 @ %W selection set @%x,%y
882 @ }
883 @
884 @ foreach {side syncCol} {A .txtB B .txtA} {
885 @ set ln .ln$side
886 @ text $ln
887 @ $ln tag config - -justify right
888 @
889 @ set txt .txt$side
890 @ text $txt -width $CFG(WIDTH) -height $CFG(HEIGHT) -wrap none \
891 @ -xscroll "sync-x $syncCol"
892 @ catch {$txt config -tabstyle wordprocessor} ;# Required for Tk>=8.5
893 @ foreach tag {add rm chng} {
@@ -896,11 +896,11 @@
896 @ }
897 @ $txt tag config fn -background $CFG(FN_BG) -foreground $CFG(FN_FG) \
898 @ -justify center
899 @ }
900 @ text .mkr
901 @
902 @ foreach c [cols] {
903 @ set keyPrefix [string toupper [colType $c]]_COL_
904 @ if {[tk windowingsystem] eq "win32"} {$c config -font {courier 9}}
905 @ $c config -bg $CFG(${keyPrefix}BG) -fg $CFG(${keyPrefix}FG) -borderwidth 0 \
906 @ -padx $CFG(PADX) -yscroll sync-y
@@ -908,22 +908,22 @@
908 @ -foreground $CFG(HR_FG)
909 @ $c tag config fn -spacing1 $CFG(FN_PAD) -spacing3 $CFG(FN_PAD)
910 @ bindtags $c ". $c Text all"
911 @ bind $c <1> {focus %W}
912 @ }
913 @
914 @ ::ttk::scrollbar .sby -command {.txtA yview} -orient vertical
915 @ ::ttk::scrollbar .sbxA -command {.txtA xview} -orient horizontal
916 @ ::ttk::scrollbar .sbxB -command {.txtB xview} -orient horizontal
917 @ frame .spacer
918 @
919 @ if {[readDiffs $fossilcmd] == 0} {
920 @ tk_messageBox -type ok -title $CFG(TITLE) -message "No changes"
921 @ exit
922 @ }
923 @ update idletasks
924 @
925 @ proc saveDiff {} {
926 @ set fn [tk_getSaveFile]
927 @ set out [open $fn wb]
928 @ puts $out "#!/usr/bin/tclsh\n#\n# Run this script using 'tclsh' or 'wish'"
929 @ puts $out "# to see the graphical diff.\n#"
@@ -947,11 +947,11 @@
947 @ eval grid [cols] -row 1 -sticky nsew
948 @ grid .sby -row 1 -column 5 -sticky ns
949 @ grid .sbxA -row 2 -columnspan 2 -sticky ew
950 @ grid .spacer -row 2 -column 2
951 @ grid .sbxB -row 2 -column 3 -columnspan 2 -sticky ew
952 @
953 @ .spacer config -height [winfo height .sbxA]
954 @ wm deiconify .
955 @ }
956 @ eval $prog
957 ;
958
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -610,11 +610,11 @@
610 /* A Tcl/Tk script used to render diff output.
611 */
612 static const char zDiffScript[] =
613 @ set prog {
614 @ package require Tk
615 @
616 @ array set CFG {
617 @ TITLE {Fossil Diff}
618 @ LN_COL_BG #dddddd
619 @ LN_COL_FG #444444
620 @ TXT_COL_BG #ffffff
@@ -633,38 +633,38 @@
633 @ PADX 5
634 @ WIDTH 80
635 @ HEIGHT 45
636 @ LB_HEIGHT 25
637 @ }
638 @
639 @ if {![namespace exists ttk]} {
640 @ interp alias {} ::ttk::scrollbar {} ::scrollbar
641 @ interp alias {} ::ttk::menubutton {} ::menubutton
642 @ }
643 @
644 @ proc dehtml {x} {
645 @ set x [regsub -all {<[^>]*>} $x {}]
646 @ return [string map {&amp; & &lt; < &gt; > &#39; ' &quot; \"} $x]
647 @ }
648 @
649 @ proc cols {} {
650 @ return [list .lnA .txtA .mkr .lnB .txtB]
651 @ }
652 @
653 @ proc colType {c} {
654 @ regexp {[a-z]+} $c type
655 @ return $type
656 @ }
657 @
658 @ proc getLine {difftxt N iivar} {
659 @ upvar $iivar ii
660 @ if {$ii>=$N} {return -1}
661 @ set x [lindex $difftxt $ii]
662 @ incr ii
663 @ return $x
664 @ }
665 @
666 @ proc readDiffs {fossilcmd} {
667 @ global difftxt
668 @ if {![info exists difftxt]} {
669 @ set in [open $fossilcmd r]
670 @ fconfigure $in -encoding utf-8
@@ -686,14 +686,14 @@
686 @ continue
687 @ }
688 @ incr nDiffs
689 @ set idx [expr {$nDiffs > 1 ? [.txtA index end] : "1.0"}]
690 @ .wfiles.lb insert end $fn
691 @
692 @ foreach c [cols] {
693 @ while {[getLine $difftxt $N ii] ne "<pre>"} continue
694 @
695 @ if {$nDiffs > 1} {
696 @ $c insert end \n -
697 @ }
698 @ if {[colType $c] eq "txt"} {
699 @ $c insert end $fn\n fn
@@ -700,21 +700,21 @@
700 @ if {$fn2!=""} {set fn $fn2}
701 @ } else {
702 @ $c insert end \n fn
703 @ }
704 @ $c insert end \n -
705 @
706 @ set type [colType $c]
707 @ set str {}
708 @ while {[set line [getLine $difftxt $N ii]] ne "</pre>"} {
709 @ set len [string length [dehtml $line]]
710 @ if {$len > $widths($type)} {
711 @ set widths($type) $len
712 @ }
713 @ append str $line\n
714 @ }
715 @
716 @ set re {<span class="diff([a-z]+)">([^<]*)</span>}
717 @ # Use \r as separator since it can't appear in the diff output (it gets
718 @ # converted to a space).
719 @ set str [regsub -all $re $str "\r\\1\r\\2\r"]
720 @ foreach {pre class mid} [split $str \r] {
@@ -724,11 +724,11 @@
724 @ $c insert end [dehtml $pre] -
725 @ }
726 @ }
727 @ }
728 @ }
729 @
730 @ foreach c [cols] {
731 @ set type [colType $c]
732 @ if {$type ne "txt"} {
733 @ $c config -width $widths($type)
734 @ }
@@ -736,19 +736,19 @@
736 @ }
737 @ if {$nDiffs <= [.wfiles.lb cget -height]} {
738 @ .wfiles.lb config -height $nDiffs
739 @ grid remove .wfiles.sb
740 @ }
741 @
742 @ return $nDiffs
743 @ }
744 @
745 @ proc viewDiff {idx} {
746 @ .txtA yview $idx
747 @ .txtA xview moveto 0
748 @ }
749 @
750 @ proc cycleDiffs {{reverse 0}} {
751 @ if {$reverse} {
752 @ set range [.txtA tag prevrange fn @0,0 1.0]
753 @ if {$range eq ""} {
754 @ viewDiff {fn.last -1c}
@@ -762,36 +762,36 @@
762 @ } else {
763 @ viewDiff [lindex $range 0]
764 @ }
765 @ }
766 @ }
767 @
768 @ proc xvis {col} {
769 @ set view [$col xview]
770 @ return [expr {[lindex $view 1]-[lindex $view 0]}]
771 @ }
772 @
773 @ proc scroll-x {args} {
774 @ set c .txt[expr {[xvis .txtA] < [xvis .txtB] ? "A" : "B"}]
775 @ eval $c xview $args
776 @ }
777 @
778 @ interp alias {} scroll-y {} .txtA yview
779 @
780 @ proc noop {args} {}
781 @
782 @ proc enableSync {axis} {
783 @ update idletasks
784 @ interp alias {} sync-$axis {}
785 @ rename _sync-$axis sync-$axis
786 @ }
787 @
788 @ proc disableSync {axis} {
789 @ rename sync-$axis _sync-$axis
790 @ interp alias {} sync-$axis {} noop
791 @ }
792 @
793 @ proc sync-x {col first last} {
794 @ disableSync x
795 @ $col xview moveto [expr {$first*[xvis $col]/($last-$first)}]
796 @ foreach side {A B} {
797 @ set sb .sbx$side
@@ -803,11 +803,11 @@
803 @ grid remove $sb
804 @ }
805 @ }
806 @ enableSync x
807 @ }
808 @
809 @ proc sync-y {first last} {
810 @ disableSync y
811 @ foreach c [cols] {
812 @ $c yview moveto $first
813 @ }
@@ -817,11 +817,11 @@
817 @ } else {
818 @ grid remove .sby
819 @ }
820 @ enableSync y
821 @ }
822 @
823 @ wm withdraw .
824 @ wm title . $CFG(TITLE)
825 @ wm iconname . $CFG(TITLE)
826 @ bind . <q> exit
827 @ bind . <Destroy> {after 0 exit}
@@ -843,11 +843,11 @@
843 @ End y {moveto 1}
844 @ } {
845 @ bind . <$key> "scroll-$axis $args; break"
846 @ bind . <Shift-$key> continue
847 @ }
848 @
849 @ frame .bb
850 @ ::ttk::menubutton .bb.files -text "Files"
851 @ toplevel .wfiles
852 @ wm withdraw .wfiles
853 @ update idletasks
@@ -878,16 +878,16 @@
878 @ }
879 @ bind .wfiles.lb <Motion> {
880 @ %W selection clear 0 end
881 @ %W selection set @%x,%y
882 @ }
883 @
884 @ foreach {side syncCol} {A .txtB B .txtA} {
885 @ set ln .ln$side
886 @ text $ln
887 @ $ln tag config - -justify right
888 @
889 @ set txt .txt$side
890 @ text $txt -width $CFG(WIDTH) -height $CFG(HEIGHT) -wrap none \
891 @ -xscroll "sync-x $syncCol"
892 @ catch {$txt config -tabstyle wordprocessor} ;# Required for Tk>=8.5
893 @ foreach tag {add rm chng} {
@@ -896,11 +896,11 @@
896 @ }
897 @ $txt tag config fn -background $CFG(FN_BG) -foreground $CFG(FN_FG) \
898 @ -justify center
899 @ }
900 @ text .mkr
901 @
902 @ foreach c [cols] {
903 @ set keyPrefix [string toupper [colType $c]]_COL_
904 @ if {[tk windowingsystem] eq "win32"} {$c config -font {courier 9}}
905 @ $c config -bg $CFG(${keyPrefix}BG) -fg $CFG(${keyPrefix}FG) -borderwidth 0 \
906 @ -padx $CFG(PADX) -yscroll sync-y
@@ -908,22 +908,22 @@
908 @ -foreground $CFG(HR_FG)
909 @ $c tag config fn -spacing1 $CFG(FN_PAD) -spacing3 $CFG(FN_PAD)
910 @ bindtags $c ". $c Text all"
911 @ bind $c <1> {focus %W}
912 @ }
913 @
914 @ ::ttk::scrollbar .sby -command {.txtA yview} -orient vertical
915 @ ::ttk::scrollbar .sbxA -command {.txtA xview} -orient horizontal
916 @ ::ttk::scrollbar .sbxB -command {.txtB xview} -orient horizontal
917 @ frame .spacer
918 @
919 @ if {[readDiffs $fossilcmd] == 0} {
920 @ tk_messageBox -type ok -title $CFG(TITLE) -message "No changes"
921 @ exit
922 @ }
923 @ update idletasks
924 @
925 @ proc saveDiff {} {
926 @ set fn [tk_getSaveFile]
927 @ set out [open $fn wb]
928 @ puts $out "#!/usr/bin/tclsh\n#\n# Run this script using 'tclsh' or 'wish'"
929 @ puts $out "# to see the graphical diff.\n#"
@@ -947,11 +947,11 @@
947 @ eval grid [cols] -row 1 -sticky nsew
948 @ grid .sby -row 1 -column 5 -sticky ns
949 @ grid .sbxA -row 2 -columnspan 2 -sticky ew
950 @ grid .spacer -row 2 -column 2
951 @ grid .sbxB -row 2 -column 3 -columnspan 2 -sticky ew
952 @
953 @ .spacer config -height [winfo height .sbxA]
954 @ wm deiconify .
955 @ }
956 @ eval $prog
957 ;
958
+8 -8
--- src/event.c
+++ src/event.c
@@ -185,11 +185,11 @@
185185
blob_init(&comment, pEvent->zComment, -1);
186186
wiki_convert(&comment, 0, WIKI_INLINE);
187187
blob_reset(&comment);
188188
@ </div>
189189
@ </blockquote><hr />
190
- }
190
+ }
191191
192192
wiki_convert(&tail, 0, 0);
193193
style_footer();
194194
manifest_destroy(pEvent);
195195
}
@@ -227,11 +227,11 @@
227227
fossil_redirect_home();
228228
return;
229229
}
230230
}
231231
zTag = mprintf("event-%s", zEventId);
232
- rid = db_int(0,
232
+ rid = db_int(0,
233233
"SELECT rid FROM tagxref"
234234
" WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
235235
" ORDER BY mtime DESC", zTag
236236
);
237237
free(zTag);
@@ -312,11 +312,11 @@
312312
Stmt q;
313313
char *zBlob;
314314
315315
/* Load the tags string into a blob */
316316
blob_zero(&tags);
317
- blob_append(&tags, zTags, -1);
317
+ blob_append(&tags, zTags, -1);
318318
319319
/* Collapse all sequences of whitespace and "," characters into
320320
** a single space character */
321321
zBlob = blob_str(&tags);
322322
for(i=j=0; zBlob[i]; i++, j++){
@@ -341,11 +341,11 @@
341341
db_prepare(&q, "SELECT x FROM newtags ORDER BY x");
342342
while( db_step(&q)==SQLITE_ROW ){
343343
blob_appendf(&event, "T +sym-%F *\n", db_column_text(&q, 0));
344344
}
345345
db_finalize(&q);
346
- }
346
+ }
347347
if( g.zLogin ){
348348
blob_appendf(&event, "U %F\n", g.zLogin);
349349
}
350350
blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
351351
md5sum_blob(&event, &cksum);
@@ -411,27 +411,27 @@
411411
@ <input type="text" name="t" size="25" value="%h(zETime)" />
412412
@ </td></tr>
413413
414414
@ <tr><th align="right" valign="top">Timeline&nbsp;Comment:</th>
415415
@ <td valign="top">
416
- @ <textarea name="c" class="eventedit" cols="80"
416
+ @ <textarea name="c" class="eventedit" cols="80"
417417
@ rows="3" wrap="virtual">%h(zComment)</textarea>
418418
@ </td></tr>
419419
420420
@ <tr><th align="right" valign="top">Background&nbsp;Color:</th>
421421
@ <td valign="top">
422422
render_color_chooser(0, zClr, 0, "clr", "cclr");
423423
@ </td></tr>
424
-
424
+
425425
@ <tr><th align="right" valign="top">Tags:</th>
426426
@ <td valign="top">
427427
@ <input type="text" name="g" size="40" value="%h(zTags)" />
428428
@ </td></tr>
429
-
429
+
430430
@ <tr><th align="right" valign="top">Page&nbsp;Content:</th>
431431
@ <td valign="top">
432
- @ <textarea name="w" class="eventedit" cols="80"
432
+ @ <textarea name="w" class="eventedit" cols="80"
433433
@ rows="%d(n)" wrap="virtual">%h(zBody)</textarea>
434434
@ </td></tr>
435435
436436
@ <tr><td colspan="2">
437437
@ <input type="submit" name="preview" value="Preview Your Changes" />
438438
--- src/event.c
+++ src/event.c
@@ -185,11 +185,11 @@
185 blob_init(&comment, pEvent->zComment, -1);
186 wiki_convert(&comment, 0, WIKI_INLINE);
187 blob_reset(&comment);
188 @ </div>
189 @ </blockquote><hr />
190 }
191
192 wiki_convert(&tail, 0, 0);
193 style_footer();
194 manifest_destroy(pEvent);
195 }
@@ -227,11 +227,11 @@
227 fossil_redirect_home();
228 return;
229 }
230 }
231 zTag = mprintf("event-%s", zEventId);
232 rid = db_int(0,
233 "SELECT rid FROM tagxref"
234 " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
235 " ORDER BY mtime DESC", zTag
236 );
237 free(zTag);
@@ -312,11 +312,11 @@
312 Stmt q;
313 char *zBlob;
314
315 /* Load the tags string into a blob */
316 blob_zero(&tags);
317 blob_append(&tags, zTags, -1);
318
319 /* Collapse all sequences of whitespace and "," characters into
320 ** a single space character */
321 zBlob = blob_str(&tags);
322 for(i=j=0; zBlob[i]; i++, j++){
@@ -341,11 +341,11 @@
341 db_prepare(&q, "SELECT x FROM newtags ORDER BY x");
342 while( db_step(&q)==SQLITE_ROW ){
343 blob_appendf(&event, "T +sym-%F *\n", db_column_text(&q, 0));
344 }
345 db_finalize(&q);
346 }
347 if( g.zLogin ){
348 blob_appendf(&event, "U %F\n", g.zLogin);
349 }
350 blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
351 md5sum_blob(&event, &cksum);
@@ -411,27 +411,27 @@
411 @ <input type="text" name="t" size="25" value="%h(zETime)" />
412 @ </td></tr>
413
414 @ <tr><th align="right" valign="top">Timeline&nbsp;Comment:</th>
415 @ <td valign="top">
416 @ <textarea name="c" class="eventedit" cols="80"
417 @ rows="3" wrap="virtual">%h(zComment)</textarea>
418 @ </td></tr>
419
420 @ <tr><th align="right" valign="top">Background&nbsp;Color:</th>
421 @ <td valign="top">
422 render_color_chooser(0, zClr, 0, "clr", "cclr");
423 @ </td></tr>
424
425 @ <tr><th align="right" valign="top">Tags:</th>
426 @ <td valign="top">
427 @ <input type="text" name="g" size="40" value="%h(zTags)" />
428 @ </td></tr>
429
430 @ <tr><th align="right" valign="top">Page&nbsp;Content:</th>
431 @ <td valign="top">
432 @ <textarea name="w" class="eventedit" cols="80"
433 @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea>
434 @ </td></tr>
435
436 @ <tr><td colspan="2">
437 @ <input type="submit" name="preview" value="Preview Your Changes" />
438
--- src/event.c
+++ src/event.c
@@ -185,11 +185,11 @@
185 blob_init(&comment, pEvent->zComment, -1);
186 wiki_convert(&comment, 0, WIKI_INLINE);
187 blob_reset(&comment);
188 @ </div>
189 @ </blockquote><hr />
190 }
191
192 wiki_convert(&tail, 0, 0);
193 style_footer();
194 manifest_destroy(pEvent);
195 }
@@ -227,11 +227,11 @@
227 fossil_redirect_home();
228 return;
229 }
230 }
231 zTag = mprintf("event-%s", zEventId);
232 rid = db_int(0,
233 "SELECT rid FROM tagxref"
234 " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
235 " ORDER BY mtime DESC", zTag
236 );
237 free(zTag);
@@ -312,11 +312,11 @@
312 Stmt q;
313 char *zBlob;
314
315 /* Load the tags string into a blob */
316 blob_zero(&tags);
317 blob_append(&tags, zTags, -1);
318
319 /* Collapse all sequences of whitespace and "," characters into
320 ** a single space character */
321 zBlob = blob_str(&tags);
322 for(i=j=0; zBlob[i]; i++, j++){
@@ -341,11 +341,11 @@
341 db_prepare(&q, "SELECT x FROM newtags ORDER BY x");
342 while( db_step(&q)==SQLITE_ROW ){
343 blob_appendf(&event, "T +sym-%F *\n", db_column_text(&q, 0));
344 }
345 db_finalize(&q);
346 }
347 if( g.zLogin ){
348 blob_appendf(&event, "U %F\n", g.zLogin);
349 }
350 blob_appendf(&event, "W %d\n%s\n", strlen(zBody), zBody);
351 md5sum_blob(&event, &cksum);
@@ -411,27 +411,27 @@
411 @ <input type="text" name="t" size="25" value="%h(zETime)" />
412 @ </td></tr>
413
414 @ <tr><th align="right" valign="top">Timeline&nbsp;Comment:</th>
415 @ <td valign="top">
416 @ <textarea name="c" class="eventedit" cols="80"
417 @ rows="3" wrap="virtual">%h(zComment)</textarea>
418 @ </td></tr>
419
420 @ <tr><th align="right" valign="top">Background&nbsp;Color:</th>
421 @ <td valign="top">
422 render_color_chooser(0, zClr, 0, "clr", "cclr");
423 @ </td></tr>
424
425 @ <tr><th align="right" valign="top">Tags:</th>
426 @ <td valign="top">
427 @ <input type="text" name="g" size="40" value="%h(zTags)" />
428 @ </td></tr>
429
430 @ <tr><th align="right" valign="top">Page&nbsp;Content:</th>
431 @ <td valign="top">
432 @ <textarea name="w" class="eventedit" cols="80"
433 @ rows="%d(n)" wrap="virtual">%h(zBody)</textarea>
434 @ </td></tr>
435
436 @ <tr><td colspan="2">
437 @ <input type="submit" name="preview" value="Preview Your Changes" />
438
--- src/json_timeline.c
+++ src/json_timeline.c
@@ -66,11 +66,11 @@
6666
/*
6767
** Create a temporary table suitable for storing timeline data.
6868
*/
6969
static void json_timeline_temp_table(void){
7070
/* Field order MUST match that from json_timeline_query()!!! */
71
- static const char zSql[] =
71
+ static const char zSql[] =
7272
@ CREATE TEMP TABLE IF NOT EXISTS json_timeline(
7373
@ sortId INTEGER PRIMARY KEY,
7474
@ rid INTEGER,
7575
@ uuid TEXT,
7676
@ mtime INTEGER,
@@ -109,11 +109,11 @@
109109
@ (SELECT group_concat(substr(tagname,5), ',') FROM tag, tagxref
110110
@ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
111111
@ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) as tags,
112112
@ tagid as tagId,
113113
@ brief as brief
114
- @ FROM event JOIN blob
114
+ @ FROM event JOIN blob
115115
@ WHERE blob.rid=event.objid
116116
;
117117
return zBaseSql;
118118
}
119119
@@ -316,11 +316,11 @@
316316
*/
317317
cson_value * json_get_changed_files(int rid, int flags){
318318
cson_value * rowsV = NULL;
319319
cson_array * rows = NULL;
320320
Stmt q = empty_Stmt;
321
- db_prepare(&q,
321
+ db_prepare(&q,
322322
"SELECT (pid==0) AS isnew,"
323323
" (fid==0) AS isdel,"
324324
" (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
325325
" blob.uuid as uuid,"
326326
" (SELECT uuid FROM blob WHERE rid=pid) as parent,"
327327
--- src/json_timeline.c
+++ src/json_timeline.c
@@ -66,11 +66,11 @@
66 /*
67 ** Create a temporary table suitable for storing timeline data.
68 */
69 static void json_timeline_temp_table(void){
70 /* Field order MUST match that from json_timeline_query()!!! */
71 static const char zSql[] =
72 @ CREATE TEMP TABLE IF NOT EXISTS json_timeline(
73 @ sortId INTEGER PRIMARY KEY,
74 @ rid INTEGER,
75 @ uuid TEXT,
76 @ mtime INTEGER,
@@ -109,11 +109,11 @@
109 @ (SELECT group_concat(substr(tagname,5), ',') FROM tag, tagxref
110 @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
111 @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) as tags,
112 @ tagid as tagId,
113 @ brief as brief
114 @ FROM event JOIN blob
115 @ WHERE blob.rid=event.objid
116 ;
117 return zBaseSql;
118 }
119
@@ -316,11 +316,11 @@
316 */
317 cson_value * json_get_changed_files(int rid, int flags){
318 cson_value * rowsV = NULL;
319 cson_array * rows = NULL;
320 Stmt q = empty_Stmt;
321 db_prepare(&q,
322 "SELECT (pid==0) AS isnew,"
323 " (fid==0) AS isdel,"
324 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
325 " blob.uuid as uuid,"
326 " (SELECT uuid FROM blob WHERE rid=pid) as parent,"
327
--- src/json_timeline.c
+++ src/json_timeline.c
@@ -66,11 +66,11 @@
66 /*
67 ** Create a temporary table suitable for storing timeline data.
68 */
69 static void json_timeline_temp_table(void){
70 /* Field order MUST match that from json_timeline_query()!!! */
71 static const char zSql[] =
72 @ CREATE TEMP TABLE IF NOT EXISTS json_timeline(
73 @ sortId INTEGER PRIMARY KEY,
74 @ rid INTEGER,
75 @ uuid TEXT,
76 @ mtime INTEGER,
@@ -109,11 +109,11 @@
109 @ (SELECT group_concat(substr(tagname,5), ',') FROM tag, tagxref
110 @ WHERE tagname GLOB 'sym-*' AND tag.tagid=tagxref.tagid
111 @ AND tagxref.rid=blob.rid AND tagxref.tagtype>0) as tags,
112 @ tagid as tagId,
113 @ brief as brief
114 @ FROM event JOIN blob
115 @ WHERE blob.rid=event.objid
116 ;
117 return zBaseSql;
118 }
119
@@ -316,11 +316,11 @@
316 */
317 cson_value * json_get_changed_files(int rid, int flags){
318 cson_value * rowsV = NULL;
319 cson_array * rows = NULL;
320 Stmt q = empty_Stmt;
321 db_prepare(&q,
322 "SELECT (pid==0) AS isnew,"
323 " (fid==0) AS isdel,"
324 " (SELECT name FROM filename WHERE fnid=mlink.fnid) AS name,"
325 " blob.uuid as uuid,"
326 " (SELECT uuid FROM blob WHERE rid=pid) as parent,"
327
+9 -9
--- src/schema.c
+++ src/schema.c
@@ -21,11 +21,11 @@
2121
#include "schema.h"
2222
2323
/*
2424
** The database schema for the ~/.fossil configuration database.
2525
*/
26
-const char zConfigSchema[] =
26
+const char zConfigSchema[] =
2727
@ -- This file contains the schema for the database that is kept in the
2828
@ -- ~/.fossil file and that stores information about the users setup.
2929
@ --
3030
@ CREATE TABLE global_config(
3131
@ name TEXT PRIMARY KEY,
@@ -50,19 +50,19 @@
5050
5151
#endif /* INTERFACE */
5252
5353
5454
/*
55
-** The schema for a repository database.
55
+** The schema for a repository database.
5656
**
5757
** Schema1[] contains parts of the schema that are fixed and unchanging
5858
** across versions. Schema2[] contains parts of the schema that can
5959
** change from one version to the next. The information in Schema2[]
6060
** is reconstructed from the information in Schema1[] by the "rebuild"
6161
** operation.
6262
*/
63
-const char zRepositorySchema1[] =
63
+const char zRepositorySchema1[] =
6464
@ -- The BLOB and DELTA tables contain all records held in the repository.
6565
@ --
6666
@ -- The BLOB.CONTENT column is always compressed using zlib. This
6767
@ -- column might hold the full text of the record or it might hold
6868
@ -- a delta that is able to reconstruct the record from some other
@@ -69,11 +69,11 @@
6969
@ -- record. If BLOB.CONTENT holds a delta, then a DELTA table entry
7070
@ -- will exist for the record and that entry will point to another
7171
@ -- entry that holds the source of the delta. Deltas can be chained.
7272
@ --
7373
@ -- The blob and delta tables collectively hold the "global state" of
74
-@ -- a Fossil repository.
74
+@ -- a Fossil repository.
7575
@ --
7676
@ CREATE TABLE blob(
7777
@ rid INTEGER PRIMARY KEY, -- Record ID
7878
@ rcvid INTEGER, -- Origin of this record
7979
@ size INTEGER, -- Size of content. -1 for a phantom.
@@ -89,11 +89,11 @@
8989
@
9090
@ -------------------------------------------------------------------------
9191
@ -- The BLOB and DELTA tables above hold the "global state" of a Fossil
9292
@ -- project; the stuff that is normally exchanged during "sync". The
9393
@ -- "local state" of a repository is contained in the remaining tables of
94
-@ -- the zRepositorySchema1 string.
94
+@ -- the zRepositorySchema1 string.
9595
@ -------------------------------------------------------------------------
9696
@
9797
@ -- Whenever new blobs are received into the repository, an entry
9898
@ -- in this table records the source of the blob.
9999
@ --
@@ -172,11 +172,11 @@
172172
@ );
173173
@
174174
@ -- Some ticket content (such as the originators email address or contact
175175
@ -- information) needs to be obscured to protect privacy. This is achieved
176176
@ -- by storing an SHA1 hash of the content. For display, the hash is
177
-@ -- mapped back into the original text using this table.
177
+@ -- mapped back into the original text using this table.
178178
@ --
179179
@ -- This table contains sensitive information and should not be shared
180180
@ -- with unauthorized users.
181181
@ --
182182
@ CREATE TABLE concealed(
@@ -193,11 +193,11 @@
193193
/*
194194
** The default reportfmt entry for the schema. This is in an extra
195195
** script so that (configure reset) can install the default report.
196196
*/
197197
const char zRepositorySchemaDefaultReports[] =
198
-@ INSERT INTO reportfmt(title,mtime,cols,sqlcode)
198
+@ INSERT INTO reportfmt(title,mtime,cols,sqlcode)
199199
@ VALUES('All Tickets',julianday('1970-01-01'),'#ffffff Key:
200200
@ #f2dcdc Active
201201
@ #e8e8e8 Review
202202
@ #cfe8bd Fixed
203203
@ #bde5d6 Tested
@@ -321,13 +321,13 @@
321321
@ rid INTEGER PRIMARY KEY -- Record ID of the phantom
322322
@ );
323323
@
324324
@ -- Each baseline or manifest can have one or more tags. A tag
325325
@ -- is defined by a row in the next table.
326
-@ --
326
+@ --
327327
@ -- Wiki pages are tagged with "wiki-NAME" where NAME is the name of
328
-@ -- the wiki page. Tickets changes are tagged with "ticket-UUID" where
328
+@ -- the wiki page. Tickets changes are tagged with "ticket-UUID" where
329329
@ -- UUID is the indentifier of the ticket. Tags used to assign symbolic
330330
@ -- names to baselines are branches are of the form "sym-NAME" where
331331
@ -- NAME is the symbolic name.
332332
@ --
333333
@ CREATE TABLE tag(
334334
--- src/schema.c
+++ src/schema.c
@@ -21,11 +21,11 @@
21 #include "schema.h"
22
23 /*
24 ** The database schema for the ~/.fossil configuration database.
25 */
26 const char zConfigSchema[] =
27 @ -- This file contains the schema for the database that is kept in the
28 @ -- ~/.fossil file and that stores information about the users setup.
29 @ --
30 @ CREATE TABLE global_config(
31 @ name TEXT PRIMARY KEY,
@@ -50,19 +50,19 @@
50
51 #endif /* INTERFACE */
52
53
54 /*
55 ** The schema for a repository database.
56 **
57 ** Schema1[] contains parts of the schema that are fixed and unchanging
58 ** across versions. Schema2[] contains parts of the schema that can
59 ** change from one version to the next. The information in Schema2[]
60 ** is reconstructed from the information in Schema1[] by the "rebuild"
61 ** operation.
62 */
63 const char zRepositorySchema1[] =
64 @ -- The BLOB and DELTA tables contain all records held in the repository.
65 @ --
66 @ -- The BLOB.CONTENT column is always compressed using zlib. This
67 @ -- column might hold the full text of the record or it might hold
68 @ -- a delta that is able to reconstruct the record from some other
@@ -69,11 +69,11 @@
69 @ -- record. If BLOB.CONTENT holds a delta, then a DELTA table entry
70 @ -- will exist for the record and that entry will point to another
71 @ -- entry that holds the source of the delta. Deltas can be chained.
72 @ --
73 @ -- The blob and delta tables collectively hold the "global state" of
74 @ -- a Fossil repository.
75 @ --
76 @ CREATE TABLE blob(
77 @ rid INTEGER PRIMARY KEY, -- Record ID
78 @ rcvid INTEGER, -- Origin of this record
79 @ size INTEGER, -- Size of content. -1 for a phantom.
@@ -89,11 +89,11 @@
89 @
90 @ -------------------------------------------------------------------------
91 @ -- The BLOB and DELTA tables above hold the "global state" of a Fossil
92 @ -- project; the stuff that is normally exchanged during "sync". The
93 @ -- "local state" of a repository is contained in the remaining tables of
94 @ -- the zRepositorySchema1 string.
95 @ -------------------------------------------------------------------------
96 @
97 @ -- Whenever new blobs are received into the repository, an entry
98 @ -- in this table records the source of the blob.
99 @ --
@@ -172,11 +172,11 @@
172 @ );
173 @
174 @ -- Some ticket content (such as the originators email address or contact
175 @ -- information) needs to be obscured to protect privacy. This is achieved
176 @ -- by storing an SHA1 hash of the content. For display, the hash is
177 @ -- mapped back into the original text using this table.
178 @ --
179 @ -- This table contains sensitive information and should not be shared
180 @ -- with unauthorized users.
181 @ --
182 @ CREATE TABLE concealed(
@@ -193,11 +193,11 @@
193 /*
194 ** The default reportfmt entry for the schema. This is in an extra
195 ** script so that (configure reset) can install the default report.
196 */
197 const char zRepositorySchemaDefaultReports[] =
198 @ INSERT INTO reportfmt(title,mtime,cols,sqlcode)
199 @ VALUES('All Tickets',julianday('1970-01-01'),'#ffffff Key:
200 @ #f2dcdc Active
201 @ #e8e8e8 Review
202 @ #cfe8bd Fixed
203 @ #bde5d6 Tested
@@ -321,13 +321,13 @@
321 @ rid INTEGER PRIMARY KEY -- Record ID of the phantom
322 @ );
323 @
324 @ -- Each baseline or manifest can have one or more tags. A tag
325 @ -- is defined by a row in the next table.
326 @ --
327 @ -- Wiki pages are tagged with "wiki-NAME" where NAME is the name of
328 @ -- the wiki page. Tickets changes are tagged with "ticket-UUID" where
329 @ -- UUID is the indentifier of the ticket. Tags used to assign symbolic
330 @ -- names to baselines are branches are of the form "sym-NAME" where
331 @ -- NAME is the symbolic name.
332 @ --
333 @ CREATE TABLE tag(
334
--- src/schema.c
+++ src/schema.c
@@ -21,11 +21,11 @@
21 #include "schema.h"
22
23 /*
24 ** The database schema for the ~/.fossil configuration database.
25 */
26 const char zConfigSchema[] =
27 @ -- This file contains the schema for the database that is kept in the
28 @ -- ~/.fossil file and that stores information about the users setup.
29 @ --
30 @ CREATE TABLE global_config(
31 @ name TEXT PRIMARY KEY,
@@ -50,19 +50,19 @@
50
51 #endif /* INTERFACE */
52
53
54 /*
55 ** The schema for a repository database.
56 **
57 ** Schema1[] contains parts of the schema that are fixed and unchanging
58 ** across versions. Schema2[] contains parts of the schema that can
59 ** change from one version to the next. The information in Schema2[]
60 ** is reconstructed from the information in Schema1[] by the "rebuild"
61 ** operation.
62 */
63 const char zRepositorySchema1[] =
64 @ -- The BLOB and DELTA tables contain all records held in the repository.
65 @ --
66 @ -- The BLOB.CONTENT column is always compressed using zlib. This
67 @ -- column might hold the full text of the record or it might hold
68 @ -- a delta that is able to reconstruct the record from some other
@@ -69,11 +69,11 @@
69 @ -- record. If BLOB.CONTENT holds a delta, then a DELTA table entry
70 @ -- will exist for the record and that entry will point to another
71 @ -- entry that holds the source of the delta. Deltas can be chained.
72 @ --
73 @ -- The blob and delta tables collectively hold the "global state" of
74 @ -- a Fossil repository.
75 @ --
76 @ CREATE TABLE blob(
77 @ rid INTEGER PRIMARY KEY, -- Record ID
78 @ rcvid INTEGER, -- Origin of this record
79 @ size INTEGER, -- Size of content. -1 for a phantom.
@@ -89,11 +89,11 @@
89 @
90 @ -------------------------------------------------------------------------
91 @ -- The BLOB and DELTA tables above hold the "global state" of a Fossil
92 @ -- project; the stuff that is normally exchanged during "sync". The
93 @ -- "local state" of a repository is contained in the remaining tables of
94 @ -- the zRepositorySchema1 string.
95 @ -------------------------------------------------------------------------
96 @
97 @ -- Whenever new blobs are received into the repository, an entry
98 @ -- in this table records the source of the blob.
99 @ --
@@ -172,11 +172,11 @@
172 @ );
173 @
174 @ -- Some ticket content (such as the originators email address or contact
175 @ -- information) needs to be obscured to protect privacy. This is achieved
176 @ -- by storing an SHA1 hash of the content. For display, the hash is
177 @ -- mapped back into the original text using this table.
178 @ --
179 @ -- This table contains sensitive information and should not be shared
180 @ -- with unauthorized users.
181 @ --
182 @ CREATE TABLE concealed(
@@ -193,11 +193,11 @@
193 /*
194 ** The default reportfmt entry for the schema. This is in an extra
195 ** script so that (configure reset) can install the default report.
196 */
197 const char zRepositorySchemaDefaultReports[] =
198 @ INSERT INTO reportfmt(title,mtime,cols,sqlcode)
199 @ VALUES('All Tickets',julianday('1970-01-01'),'#ffffff Key:
200 @ #f2dcdc Active
201 @ #e8e8e8 Review
202 @ #cfe8bd Fixed
203 @ #bde5d6 Tested
@@ -321,13 +321,13 @@
321 @ rid INTEGER PRIMARY KEY -- Record ID of the phantom
322 @ );
323 @
324 @ -- Each baseline or manifest can have one or more tags. A tag
325 @ -- is defined by a row in the next table.
326 @ --
327 @ -- Wiki pages are tagged with "wiki-NAME" where NAME is the name of
328 @ -- the wiki page. Tickets changes are tagged with "ticket-UUID" where
329 @ -- UUID is the indentifier of the ticket. Tags used to assign symbolic
330 @ -- names to baselines are branches are of the form "sym-NAME" where
331 @ -- NAME is the symbolic name.
332 @ --
333 @ CREATE TABLE tag(
334
+7 -7
--- src/shun.c
+++ src/shun.c
@@ -69,11 +69,11 @@
6969
style_header("Shunned Artifacts");
7070
if( zUuid && P("sub") ){
7171
login_verify_csrf_secret();
7272
db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid);
7373
if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){
74
- @ <p class="noMoreShun">Artifact
74
+ @ <p class="noMoreShun">Artifact
7575
@ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> is no
7676
@ longer being shunned.</p>
7777
}else{
7878
@ <p class="noMoreShun">Artifact %s(zUuid) will no longer
7979
@ be shunned. But it does not exist in the repository. It
@@ -107,11 +107,11 @@
107107
}
108108
@ <p>A shunned artifact will not be pushed nor accepted in a pull and the
109109
@ artifact content will be purged from the repository the next time the
110110
@ repository is rebuilt. A list of shunned artifacts can be seen at the
111111
@ bottom of this page.</p>
112
- @
112
+ @
113113
@ <a name="addshun"></a>
114114
@ <p>To shun an artifact, enter its artifact ID (the 40-character SHA1
115115
@ hash of the artifact) in the
116116
@ following box and press the "Shun" button. This will cause the artifact
117117
@ to be removed from the repository and will prevent the artifact from being
@@ -124,11 +124,11 @@
124124
@ from the repository. Inappropriate content includes such things as
125125
@ spam added to Wiki, files that violate copyright or patent agreements,
126126
@ or artifacts that by design or accident interfere with the processing
127127
@ of the repository. Do not shun artifacts merely to remove them from
128128
@ sight - set the "hidden" tag on such artifacts instead.</p>
129
- @
129
+ @
130130
@ <blockquote>
131131
@ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
132132
login_insert_csrf_secret();
133133
@ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" />
134134
@ <input type="submit" name="add" value="Shun" />
@@ -159,14 +159,14 @@
159159
@ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
160160
login_insert_csrf_secret();
161161
@ <input type="submit" name="rebuild" value="Rebuild" />
162162
@ </div></form>
163163
@ </blockquote>
164
- @
164
+ @
165165
@ <hr /><p>Shunned Artifacts:</p>
166166
@ <blockquote><p>
167
- db_prepare(&q,
167
+ db_prepare(&q,
168168
"SELECT uuid, EXISTS(SELECT 1 FROM blob WHERE blob.uuid=shun.uuid)"
169169
" FROM shun ORDER BY uuid");
170170
while( db_step(&q)==SQLITE_ROW ){
171171
const char *zUuid = db_column_text(&q, 0);
172172
int stillExists = db_column_int(&q, 1);
@@ -228,11 +228,11 @@
228228
style_header("Content Sources");
229229
if( ofst>0 ){
230230
style_submenu_element("Newer", "Newer", "rcvfromlist?ofst=%d",
231231
ofst>30 ? ofst-30 : 0);
232232
}
233
- db_prepare(&q,
233
+ db_prepare(&q,
234234
"SELECT rcvid, login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
235235
" FROM rcvfrom LEFT JOIN user USING(uid)"
236236
" ORDER BY rcvid DESC LIMIT 31 OFFSET %d",
237237
ofst
238238
);
@@ -287,11 +287,11 @@
287287
login_check_credentials();
288288
if( !g.perm.Admin ){
289289
login_needed();
290290
}
291291
style_header("Content Source %d", rcvid);
292
- db_prepare(&q,
292
+ db_prepare(&q,
293293
"SELECT login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
294294
" FROM rcvfrom LEFT JOIN user USING(uid)"
295295
" WHERE rcvid=%d",
296296
rcvid
297297
);
298298
--- src/shun.c
+++ src/shun.c
@@ -69,11 +69,11 @@
69 style_header("Shunned Artifacts");
70 if( zUuid && P("sub") ){
71 login_verify_csrf_secret();
72 db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid);
73 if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){
74 @ <p class="noMoreShun">Artifact
75 @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> is no
76 @ longer being shunned.</p>
77 }else{
78 @ <p class="noMoreShun">Artifact %s(zUuid) will no longer
79 @ be shunned. But it does not exist in the repository. It
@@ -107,11 +107,11 @@
107 }
108 @ <p>A shunned artifact will not be pushed nor accepted in a pull and the
109 @ artifact content will be purged from the repository the next time the
110 @ repository is rebuilt. A list of shunned artifacts can be seen at the
111 @ bottom of this page.</p>
112 @
113 @ <a name="addshun"></a>
114 @ <p>To shun an artifact, enter its artifact ID (the 40-character SHA1
115 @ hash of the artifact) in the
116 @ following box and press the "Shun" button. This will cause the artifact
117 @ to be removed from the repository and will prevent the artifact from being
@@ -124,11 +124,11 @@
124 @ from the repository. Inappropriate content includes such things as
125 @ spam added to Wiki, files that violate copyright or patent agreements,
126 @ or artifacts that by design or accident interfere with the processing
127 @ of the repository. Do not shun artifacts merely to remove them from
128 @ sight - set the "hidden" tag on such artifacts instead.</p>
129 @
130 @ <blockquote>
131 @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
132 login_insert_csrf_secret();
133 @ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" />
134 @ <input type="submit" name="add" value="Shun" />
@@ -159,14 +159,14 @@
159 @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
160 login_insert_csrf_secret();
161 @ <input type="submit" name="rebuild" value="Rebuild" />
162 @ </div></form>
163 @ </blockquote>
164 @
165 @ <hr /><p>Shunned Artifacts:</p>
166 @ <blockquote><p>
167 db_prepare(&q,
168 "SELECT uuid, EXISTS(SELECT 1 FROM blob WHERE blob.uuid=shun.uuid)"
169 " FROM shun ORDER BY uuid");
170 while( db_step(&q)==SQLITE_ROW ){
171 const char *zUuid = db_column_text(&q, 0);
172 int stillExists = db_column_int(&q, 1);
@@ -228,11 +228,11 @@
228 style_header("Content Sources");
229 if( ofst>0 ){
230 style_submenu_element("Newer", "Newer", "rcvfromlist?ofst=%d",
231 ofst>30 ? ofst-30 : 0);
232 }
233 db_prepare(&q,
234 "SELECT rcvid, login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
235 " FROM rcvfrom LEFT JOIN user USING(uid)"
236 " ORDER BY rcvid DESC LIMIT 31 OFFSET %d",
237 ofst
238 );
@@ -287,11 +287,11 @@
287 login_check_credentials();
288 if( !g.perm.Admin ){
289 login_needed();
290 }
291 style_header("Content Source %d", rcvid);
292 db_prepare(&q,
293 "SELECT login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
294 " FROM rcvfrom LEFT JOIN user USING(uid)"
295 " WHERE rcvid=%d",
296 rcvid
297 );
298
--- src/shun.c
+++ src/shun.c
@@ -69,11 +69,11 @@
69 style_header("Shunned Artifacts");
70 if( zUuid && P("sub") ){
71 login_verify_csrf_secret();
72 db_multi_exec("DELETE FROM shun WHERE uuid='%s'", zUuid);
73 if( db_exists("SELECT 1 FROM blob WHERE uuid='%s'", zUuid) ){
74 @ <p class="noMoreShun">Artifact
75 @ <a href="%s(g.zTop)/artifact/%s(zUuid)">%s(zUuid)</a> is no
76 @ longer being shunned.</p>
77 }else{
78 @ <p class="noMoreShun">Artifact %s(zUuid) will no longer
79 @ be shunned. But it does not exist in the repository. It
@@ -107,11 +107,11 @@
107 }
108 @ <p>A shunned artifact will not be pushed nor accepted in a pull and the
109 @ artifact content will be purged from the repository the next time the
110 @ repository is rebuilt. A list of shunned artifacts can be seen at the
111 @ bottom of this page.</p>
112 @
113 @ <a name="addshun"></a>
114 @ <p>To shun an artifact, enter its artifact ID (the 40-character SHA1
115 @ hash of the artifact) in the
116 @ following box and press the "Shun" button. This will cause the artifact
117 @ to be removed from the repository and will prevent the artifact from being
@@ -124,11 +124,11 @@
124 @ from the repository. Inappropriate content includes such things as
125 @ spam added to Wiki, files that violate copyright or patent agreements,
126 @ or artifacts that by design or accident interfere with the processing
127 @ of the repository. Do not shun artifacts merely to remove them from
128 @ sight - set the "hidden" tag on such artifacts instead.</p>
129 @
130 @ <blockquote>
131 @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
132 login_insert_csrf_secret();
133 @ <input type="text" name="uuid" value="%h(PD("shun",""))" size="50" />
134 @ <input type="submit" name="add" value="Shun" />
@@ -159,14 +159,14 @@
159 @ <form method="post" action="%s(g.zTop)/%s(g.zPath)"><div>
160 login_insert_csrf_secret();
161 @ <input type="submit" name="rebuild" value="Rebuild" />
162 @ </div></form>
163 @ </blockquote>
164 @
165 @ <hr /><p>Shunned Artifacts:</p>
166 @ <blockquote><p>
167 db_prepare(&q,
168 "SELECT uuid, EXISTS(SELECT 1 FROM blob WHERE blob.uuid=shun.uuid)"
169 " FROM shun ORDER BY uuid");
170 while( db_step(&q)==SQLITE_ROW ){
171 const char *zUuid = db_column_text(&q, 0);
172 int stillExists = db_column_int(&q, 1);
@@ -228,11 +228,11 @@
228 style_header("Content Sources");
229 if( ofst>0 ){
230 style_submenu_element("Newer", "Newer", "rcvfromlist?ofst=%d",
231 ofst>30 ? ofst-30 : 0);
232 }
233 db_prepare(&q,
234 "SELECT rcvid, login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
235 " FROM rcvfrom LEFT JOIN user USING(uid)"
236 " ORDER BY rcvid DESC LIMIT 31 OFFSET %d",
237 ofst
238 );
@@ -287,11 +287,11 @@
287 login_check_credentials();
288 if( !g.perm.Admin ){
289 login_needed();
290 }
291 style_header("Content Source %d", rcvid);
292 db_prepare(&q,
293 "SELECT login, datetime(rcvfrom.mtime), rcvfrom.ipaddr"
294 " FROM rcvfrom LEFT JOIN user USING(uid)"
295 " WHERE rcvid=%d",
296 rcvid
297 );
298
+20 -20
--- src/tkt.c
+++ src/tkt.c
@@ -61,11 +61,11 @@
6161
}
6262
return -1;
6363
}
6464
6565
/*
66
-** Obtain a list of all fields of the TICKET and TICKETCHNG tables. Put them
66
+** Obtain a list of all fields of the TICKET and TICKETCHNG tables. Put them
6767
** in sorted order in aField[].
6868
**
6969
** The haveTicket and haveTicketChng variables are set to 1 if the TICKET and
7070
** TICKETCHANGE tables exist, respectively.
7171
*/
@@ -429,15 +429,15 @@
429429
if( g.perm.WrTkt || g.perm.ApndTkt ){
430430
style_submenu_element("Edit", "Edit The Ticket", "%s/tktedit?name=%T",
431431
g.zTop, PD("name",""));
432432
}
433433
if( g.perm.Hyperlink ){
434
- style_submenu_element("History", "History Of This Ticket",
434
+ style_submenu_element("History", "History Of This Ticket",
435435
"%s/tkthistory/%T", g.zTop, zUuid);
436
- style_submenu_element("Timeline", "Timeline Of This Ticket",
436
+ style_submenu_element("Timeline", "Timeline Of This Ticket",
437437
"%s/tkttimeline/%T", g.zTop, zUuid);
438
- style_submenu_element("Check-ins", "Check-ins Of This Ticket",
438
+ style_submenu_element("Check-ins", "Check-ins Of This Ticket",
439439
"%s/tkttimeline/%T?y=ci", g.zTop, zUuid);
440440
}
441441
if( g.perm.NewTkt ){
442442
style_submenu_element("New Ticket", "Create a new ticket",
443443
"%s/tktnew", g.zTop);
@@ -463,17 +463,17 @@
463463
if( P("showfields")!=0 ) showAllFields();
464464
if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
465465
Th_Render(zScript);
466466
if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
467467
468
- zFullName = db_text(0,
468
+ zFullName = db_text(0,
469469
"SELECT tkt_uuid FROM ticket"
470470
" WHERE tkt_uuid GLOB '%q*'", zUuid);
471471
if( zFullName ){
472472
attachment_list(zFullName, "<hr /><h2>Attachments:</h2><ul>");
473473
}
474
-
474
+
475475
style_footer();
476476
}
477477
478478
/*
479479
** TH command: append_field FIELD STRING
@@ -482,14 +482,14 @@
482482
** to append text. STRING is the text to be appended to that
483483
** column. The append does not actually occur until the
484484
** submit_ticket command is run.
485485
*/
486486
static int appendRemarkCmd(
487
- Th_Interp *interp,
488
- void *p,
489
- int argc,
490
- const char **argv,
487
+ Th_Interp *interp,
488
+ void *p,
489
+ int argc,
490
+ const char **argv,
491491
int *argl
492492
){
493493
int idx;
494494
495495
if( argc!=3 ){
@@ -555,14 +555,14 @@
555555
** taken from TH variables. If the content is unchanged, the field is
556556
** omitted from the artifact. Fields whose names begin with "private_"
557557
** are concealed using the db_conceal() function.
558558
*/
559559
static int submitTicketCmd(
560
- Th_Interp *interp,
561
- void *pUuid,
562
- int argc,
563
- const char **argv,
560
+ Th_Interp *interp,
561
+ void *pUuid,
562
+ int argc,
563
+ const char **argv,
564564
int *argl
565565
){
566566
char *zDate;
567567
const char *zUuid;
568568
int i;
@@ -606,11 +606,11 @@
606606
nJ++;
607607
}
608608
}
609609
}
610610
if( *(char**)pUuid ){
611
- zUuid = db_text(0,
611
+ zUuid = db_text(0,
612612
"SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%q*'", P("name")
613613
);
614614
}else{
615615
zUuid = db_text(0, "SELECT lower(hex(randomblob(20)))");
616616
}
@@ -939,14 +939,14 @@
939939
nChng++;
940940
if( zFile!=0 ){
941941
const char *zSrc = db_column_text(&q, 3);
942942
const char *zUser = db_column_text(&q, 5);
943943
if( zSrc==0 || zSrc[0]==0 ){
944
- @
944
+ @
945945
@ <li><p>Delete attachment "%h(zFile)"
946946
}else{
947
- @
947
+ @
948948
@ <li><p>Add attachment
949949
@ "%z(href("%R/artifact/%S",zSrc))%s(zFile)</a>"
950950
}
951951
@ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>]
952952
@ (rid %d(rid)) by
@@ -1151,11 +1151,11 @@
11511151
}else{
11521152
/* add a new ticket or set fields on existing tickets */
11531153
tTktShowEncoding tktEncoding;
11541154
11551155
tktEncoding = find_option("quote","q",0) ? tktFossilize : tktNoTab;
1156
-
1156
+
11571157
if( strncmp(g.argv[2],"show",n)==0 ){
11581158
if( g.argc==3 ){
11591159
usage("show REPORTNR");
11601160
}else{
11611161
const char *zRep = 0;
@@ -1186,11 +1186,11 @@
11861186
eCmd = set;
11871187
}
11881188
if( g.argc==3 ){
11891189
usage("set|change|history TICKETUUID");
11901190
}
1191
- zTktUuid = db_text(0,
1191
+ zTktUuid = db_text(0,
11921192
"SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%s*'", g.argv[3]
11931193
);
11941194
if( !zTktUuid ){
11951195
fossil_fatal("unknown ticket: '%s'!",g.argv[3]);
11961196
}
@@ -1217,11 +1217,11 @@
12171217
}
12181218
tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",
12191219
zTktUuid);
12201220
if( tagid==0 ){
12211221
fossil_fatal("no such ticket %h", zTktUuid);
1222
- }
1222
+ }
12231223
db_prepare(&q,
12241224
"SELECT datetime(mtime%s), objid, uuid, NULL, NULL, NULL"
12251225
" FROM event, blob"
12261226
" WHERE objid IN (SELECT rid FROM tagxref WHERE tagid=%d)"
12271227
" AND blob.rid=event.objid"
12281228
--- src/tkt.c
+++ src/tkt.c
@@ -61,11 +61,11 @@
61 }
62 return -1;
63 }
64
65 /*
66 ** Obtain a list of all fields of the TICKET and TICKETCHNG tables. Put them
67 ** in sorted order in aField[].
68 **
69 ** The haveTicket and haveTicketChng variables are set to 1 if the TICKET and
70 ** TICKETCHANGE tables exist, respectively.
71 */
@@ -429,15 +429,15 @@
429 if( g.perm.WrTkt || g.perm.ApndTkt ){
430 style_submenu_element("Edit", "Edit The Ticket", "%s/tktedit?name=%T",
431 g.zTop, PD("name",""));
432 }
433 if( g.perm.Hyperlink ){
434 style_submenu_element("History", "History Of This Ticket",
435 "%s/tkthistory/%T", g.zTop, zUuid);
436 style_submenu_element("Timeline", "Timeline Of This Ticket",
437 "%s/tkttimeline/%T", g.zTop, zUuid);
438 style_submenu_element("Check-ins", "Check-ins Of This Ticket",
439 "%s/tkttimeline/%T?y=ci", g.zTop, zUuid);
440 }
441 if( g.perm.NewTkt ){
442 style_submenu_element("New Ticket", "Create a new ticket",
443 "%s/tktnew", g.zTop);
@@ -463,17 +463,17 @@
463 if( P("showfields")!=0 ) showAllFields();
464 if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
465 Th_Render(zScript);
466 if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
467
468 zFullName = db_text(0,
469 "SELECT tkt_uuid FROM ticket"
470 " WHERE tkt_uuid GLOB '%q*'", zUuid);
471 if( zFullName ){
472 attachment_list(zFullName, "<hr /><h2>Attachments:</h2><ul>");
473 }
474
475 style_footer();
476 }
477
478 /*
479 ** TH command: append_field FIELD STRING
@@ -482,14 +482,14 @@
482 ** to append text. STRING is the text to be appended to that
483 ** column. The append does not actually occur until the
484 ** submit_ticket command is run.
485 */
486 static int appendRemarkCmd(
487 Th_Interp *interp,
488 void *p,
489 int argc,
490 const char **argv,
491 int *argl
492 ){
493 int idx;
494
495 if( argc!=3 ){
@@ -555,14 +555,14 @@
555 ** taken from TH variables. If the content is unchanged, the field is
556 ** omitted from the artifact. Fields whose names begin with "private_"
557 ** are concealed using the db_conceal() function.
558 */
559 static int submitTicketCmd(
560 Th_Interp *interp,
561 void *pUuid,
562 int argc,
563 const char **argv,
564 int *argl
565 ){
566 char *zDate;
567 const char *zUuid;
568 int i;
@@ -606,11 +606,11 @@
606 nJ++;
607 }
608 }
609 }
610 if( *(char**)pUuid ){
611 zUuid = db_text(0,
612 "SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%q*'", P("name")
613 );
614 }else{
615 zUuid = db_text(0, "SELECT lower(hex(randomblob(20)))");
616 }
@@ -939,14 +939,14 @@
939 nChng++;
940 if( zFile!=0 ){
941 const char *zSrc = db_column_text(&q, 3);
942 const char *zUser = db_column_text(&q, 5);
943 if( zSrc==0 || zSrc[0]==0 ){
944 @
945 @ <li><p>Delete attachment "%h(zFile)"
946 }else{
947 @
948 @ <li><p>Add attachment
949 @ "%z(href("%R/artifact/%S",zSrc))%s(zFile)</a>"
950 }
951 @ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>]
952 @ (rid %d(rid)) by
@@ -1151,11 +1151,11 @@
1151 }else{
1152 /* add a new ticket or set fields on existing tickets */
1153 tTktShowEncoding tktEncoding;
1154
1155 tktEncoding = find_option("quote","q",0) ? tktFossilize : tktNoTab;
1156
1157 if( strncmp(g.argv[2],"show",n)==0 ){
1158 if( g.argc==3 ){
1159 usage("show REPORTNR");
1160 }else{
1161 const char *zRep = 0;
@@ -1186,11 +1186,11 @@
1186 eCmd = set;
1187 }
1188 if( g.argc==3 ){
1189 usage("set|change|history TICKETUUID");
1190 }
1191 zTktUuid = db_text(0,
1192 "SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%s*'", g.argv[3]
1193 );
1194 if( !zTktUuid ){
1195 fossil_fatal("unknown ticket: '%s'!",g.argv[3]);
1196 }
@@ -1217,11 +1217,11 @@
1217 }
1218 tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",
1219 zTktUuid);
1220 if( tagid==0 ){
1221 fossil_fatal("no such ticket %h", zTktUuid);
1222 }
1223 db_prepare(&q,
1224 "SELECT datetime(mtime%s), objid, uuid, NULL, NULL, NULL"
1225 " FROM event, blob"
1226 " WHERE objid IN (SELECT rid FROM tagxref WHERE tagid=%d)"
1227 " AND blob.rid=event.objid"
1228
--- src/tkt.c
+++ src/tkt.c
@@ -61,11 +61,11 @@
61 }
62 return -1;
63 }
64
65 /*
66 ** Obtain a list of all fields of the TICKET and TICKETCHNG tables. Put them
67 ** in sorted order in aField[].
68 **
69 ** The haveTicket and haveTicketChng variables are set to 1 if the TICKET and
70 ** TICKETCHANGE tables exist, respectively.
71 */
@@ -429,15 +429,15 @@
429 if( g.perm.WrTkt || g.perm.ApndTkt ){
430 style_submenu_element("Edit", "Edit The Ticket", "%s/tktedit?name=%T",
431 g.zTop, PD("name",""));
432 }
433 if( g.perm.Hyperlink ){
434 style_submenu_element("History", "History Of This Ticket",
435 "%s/tkthistory/%T", g.zTop, zUuid);
436 style_submenu_element("Timeline", "Timeline Of This Ticket",
437 "%s/tkttimeline/%T", g.zTop, zUuid);
438 style_submenu_element("Check-ins", "Check-ins Of This Ticket",
439 "%s/tkttimeline/%T?y=ci", g.zTop, zUuid);
440 }
441 if( g.perm.NewTkt ){
442 style_submenu_element("New Ticket", "Create a new ticket",
443 "%s/tktnew", g.zTop);
@@ -463,17 +463,17 @@
463 if( P("showfields")!=0 ) showAllFields();
464 if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
465 Th_Render(zScript);
466 if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
467
468 zFullName = db_text(0,
469 "SELECT tkt_uuid FROM ticket"
470 " WHERE tkt_uuid GLOB '%q*'", zUuid);
471 if( zFullName ){
472 attachment_list(zFullName, "<hr /><h2>Attachments:</h2><ul>");
473 }
474
475 style_footer();
476 }
477
478 /*
479 ** TH command: append_field FIELD STRING
@@ -482,14 +482,14 @@
482 ** to append text. STRING is the text to be appended to that
483 ** column. The append does not actually occur until the
484 ** submit_ticket command is run.
485 */
486 static int appendRemarkCmd(
487 Th_Interp *interp,
488 void *p,
489 int argc,
490 const char **argv,
491 int *argl
492 ){
493 int idx;
494
495 if( argc!=3 ){
@@ -555,14 +555,14 @@
555 ** taken from TH variables. If the content is unchanged, the field is
556 ** omitted from the artifact. Fields whose names begin with "private_"
557 ** are concealed using the db_conceal() function.
558 */
559 static int submitTicketCmd(
560 Th_Interp *interp,
561 void *pUuid,
562 int argc,
563 const char **argv,
564 int *argl
565 ){
566 char *zDate;
567 const char *zUuid;
568 int i;
@@ -606,11 +606,11 @@
606 nJ++;
607 }
608 }
609 }
610 if( *(char**)pUuid ){
611 zUuid = db_text(0,
612 "SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%q*'", P("name")
613 );
614 }else{
615 zUuid = db_text(0, "SELECT lower(hex(randomblob(20)))");
616 }
@@ -939,14 +939,14 @@
939 nChng++;
940 if( zFile!=0 ){
941 const char *zSrc = db_column_text(&q, 3);
942 const char *zUser = db_column_text(&q, 5);
943 if( zSrc==0 || zSrc[0]==0 ){
944 @
945 @ <li><p>Delete attachment "%h(zFile)"
946 }else{
947 @
948 @ <li><p>Add attachment
949 @ "%z(href("%R/artifact/%S",zSrc))%s(zFile)</a>"
950 }
951 @ [%z(href("%R/artifact/%T",zChngUuid))%s(zShort)</a>]
952 @ (rid %d(rid)) by
@@ -1151,11 +1151,11 @@
1151 }else{
1152 /* add a new ticket or set fields on existing tickets */
1153 tTktShowEncoding tktEncoding;
1154
1155 tktEncoding = find_option("quote","q",0) ? tktFossilize : tktNoTab;
1156
1157 if( strncmp(g.argv[2],"show",n)==0 ){
1158 if( g.argc==3 ){
1159 usage("show REPORTNR");
1160 }else{
1161 const char *zRep = 0;
@@ -1186,11 +1186,11 @@
1186 eCmd = set;
1187 }
1188 if( g.argc==3 ){
1189 usage("set|change|history TICKETUUID");
1190 }
1191 zTktUuid = db_text(0,
1192 "SELECT tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%s*'", g.argv[3]
1193 );
1194 if( !zTktUuid ){
1195 fossil_fatal("unknown ticket: '%s'!",g.argv[3]);
1196 }
@@ -1217,11 +1217,11 @@
1217 }
1218 tagid = db_int(0, "SELECT tagid FROM tag WHERE tagname GLOB 'tkt-%q*'",
1219 zTktUuid);
1220 if( tagid==0 ){
1221 fossil_fatal("no such ticket %h", zTktUuid);
1222 }
1223 db_prepare(&q,
1224 "SELECT datetime(mtime%s), objid, uuid, NULL, NULL, NULL"
1225 " FROM event, blob"
1226 " WHERE objid IN (SELECT rid FROM tagxref WHERE tagid=%d)"
1227 " AND blob.rid=event.objid"
1228
+31 -31
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -115,11 +115,11 @@
115115
void (*xRebuild)(void), /* Run after successful update */
116116
int height /* Height of the edit box */
117117
){
118118
const char *z;
119119
int isSubmit;
120
-
120
+
121121
login_check_credentials();
122122
if( !g.perm.Setup ){
123123
login_needed();
124124
}
125125
if( P("setup") ){
@@ -314,43 +314,43 @@
314314
@ <td colspan="3">
315315
@ Enter a one-line summary of the ticket:<br />
316316
@ <input type="text" name="title" size="60" value="$<title>" />
317317
@ </td>
318318
@ </tr>
319
-@
319
+@
320320
@ <tr>
321321
@ <td align="right">Type:</td>
322322
@ <td align="left"><th1>combobox type $type_choices 1</th1></td>
323323
@ <td align="left">What type of ticket is this?</td>
324324
@ </tr>
325
-@
325
+@
326326
@ <tr>
327327
@ <td align="right">Version:</td>
328328
@ <td align="left">
329329
@ <input type="text" name="foundin" size="20" value="$<foundin>" />
330330
@ </td>
331331
@ <td align="left">In what version or build number do you observe
332332
@ the problem?</td>
333333
@ </tr>
334
-@
334
+@
335335
@ <tr>
336336
@ <td align="right">Severity:</td>
337337
@ <td align="left"><th1>combobox severity $severity_choices 1</th1></td>
338338
@ <td align="left">How debilitating is the problem? How badly does the problem
339339
@ affect the operation of the product?</td>
340340
@ </tr>
341
-@
341
+@
342342
@ <tr>
343343
@ <td align="right">EMail:</td>
344344
@ <td align="left">
345345
@ <input type="text" name="private_contact" value="$<private_contact>"
346346
@ size="30" />
347347
@ </td>
348348
@ <td align="left"><u>Not publicly visible</u>
349349
@ Used by developers to contact you with questions.</td>
350350
@ </tr>
351
-@
351
+@
352352
@ <tr>
353353
@ <td colspan="3">
354354
@ Enter a detailed description of the problem.
355355
@ For code defects, be sure to provide details on exactly how
356356
@ the problem can be reproduced. Provide as much detail as
@@ -359,11 +359,11 @@
359359
@ <br />
360360
@ <th1>set nline [linecount $comment 50 10]</th1>
361361
@ <textarea name="icomment" cols="80" rows="$nline"
362362
@ wrap="virtual" class="wikiedit">$<icomment></textarea><br />
363363
@ </tr>
364
-@
364
+@
365365
@ <th1>enable_output [info exists preview]</th1>
366366
@ <tr><td colspan="3">
367367
@ Description Preview:<br /><hr />
368368
@ <th1>
369369
@ if {$mutype eq "Wiki"} {
@@ -378,28 +378,28 @@
378378
@ wiki "<nowiki>$icomment\n</nowiki>"
379379
@ }
380380
@ </th1>
381381
@ <hr /></td></tr>
382382
@ <th1>enable_output 1</th1>
383
-@
383
+@
384384
@ <tr>
385385
@ <td><td align="left">
386386
@ <input type="submit" name="preview" value="Preview" />
387387
@ </td>
388388
@ <td align="left">See how the description will appear after formatting.</td>
389389
@ </tr>
390
-@
390
+@
391391
@ <th1>enable_output [info exists preview]</th1>
392392
@ <tr>
393393
@ <td><td align="left">
394394
@ <input type="submit" name="submit" value="Submit" />
395395
@ </td>
396
-@ <td align="left">After filling in the information above, press this
396
+@ <td align="left">After filling in the information above, press this
397397
@ button to create the new ticket</td>
398398
@ </tr>
399399
@ <th1>enable_output 1</th1>
400
-@
400
+@
401401
@ <tr>
402402
@ <td><td align="left">
403403
@ <input type="submit" name="cancel" value="Cancel" />
404404
@ </td>
405405
@ <td>Abandon and forget this ticket</td>
@@ -477,11 +477,11 @@
477477
@ </tr>
478478
@ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td>
479479
@ <td colspan="3" valign="top" class="tktDspValue">
480480
@ $<foundin>
481481
@ </td></tr>
482
-@
482
+@
483483
@ <th1>
484484
@ if {[info exists comment] && [string length $comment]>10} {
485485
@ html {
486486
@ <tr><td class="tktDspLabel">Description:</td></tr>
487487
@ <tr><td colspan="5" class="tktDspValue">
@@ -577,55 +577,55 @@
577577
@ </th1>
578578
@ <table cellpadding="5">
579579
@ <tr><td class="tktDspLabel">Title:</td><td>
580580
@ <input type="text" name="title" value="$<title>" size="60" />
581581
@ </td></tr>
582
-@
582
+@
583583
@ <tr><td class="tktDspLabel">Status:</td><td>
584584
@ <th1>combobox status $status_choices 1</th1>
585585
@ </td></tr>
586
-@
586
+@
587587
@ <tr><td class="tktDspLabel">Type:</td><td>
588588
@ <th1>combobox type $type_choices 1</th1>
589589
@ </td></tr>
590
-@
590
+@
591591
@ <tr><td class="tktDspLabel">Severity:</td><td>
592592
@ <th1>combobox severity $severity_choices 1</th1>
593593
@ </td></tr>
594
-@
594
+@
595595
@ <tr><td class="tktDspLabel">Priority:</td><td>
596596
@ <th1>combobox priority $priority_choices 1</th1>
597597
@ </td></tr>
598
-@
598
+@
599599
@ <tr><td class="tktDspLabel">Resolution:</td><td>
600600
@ <th1>combobox resolution $resolution_choices 1</th1>
601601
@ </td></tr>
602
-@
602
+@
603603
@ <tr><td class="tktDspLabel">Subsystem:</td><td>
604604
@ <th1>combobox subsystem $subsystem_choices 1</th1>
605605
@ </td></tr>
606
-@
606
+@
607607
@ <th1>enable_output [hascap e]</th1>
608608
@ <tr><td class="tktDspLabel">Contact:</td><td>
609609
@ <input type="text" name="private_contact" size="40"
610610
@ value="$<private_contact>" />
611611
@ </td></tr>
612612
@ <th1>enable_output 1</th1>
613
-@
613
+@
614614
@ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td><td>
615615
@ <input type="text" name="foundin" size="50" value="$<foundin>" />
616616
@ </td></tr>
617
-@
617
+@
618618
@ <tr><td colspan="2">
619619
@ Append Remark with format
620620
@ <th1>combobox mutype {Wiki HTML {Plain Text} {[links only]}} 1</th1>
621621
@ from
622622
@ <input type="text" name="username" value="$<username>" size="30" />:<br />
623623
@ <textarea name="icomment" cols="80" rows="15"
624624
@ wrap="virtual" class="wikiedit">$<icomment></textarea>
625625
@ </td></tr>
626
-@
626
+@
627627
@ <th1>enable_output [info exists preview]</th1>
628628
@ <tr><td colspan="2">
629629
@ Description Preview:<br><hr>
630630
@ <th1>
631631
@ if {$mutype eq "Wiki"} {
@@ -641,34 +641,34 @@
641641
@ }
642642
@ </th1>
643643
@ <hr>
644644
@ </td></tr>
645645
@ <th1>enable_output 1</th1>
646
-@
646
+@
647647
@ <tr>
648648
@ <td align="right">
649649
@ <input type="submit" name="preview" value="Preview" />
650650
@ </td>
651651
@ <td align="left">See how the description will appear after formatting.</td>
652652
@ </tr>
653
-@
653
+@
654654
@ <th1>enable_output [info exists preview]</th1>
655655
@ <tr>
656656
@ <td align="right">
657657
@ <input type="submit" name="submit" value="Submit" />
658658
@ </td>
659659
@ <td align="left">Apply the changes shown above</td>
660660
@ </tr>
661661
@ <th1>enable_output 1</th1>
662
-@
662
+@
663663
@ <tr>
664664
@ <td align="right">
665665
@ <input type="submit" name="cancel" value="Cancel" />
666666
@ </td>
667667
@ <td>Abandon this edit</td>
668668
@ </tr>
669
-@
669
+@
670670
@ </table>
671671
;
672672
673673
/*
674674
** Return the code used to generate the edit ticket page
@@ -703,16 +703,16 @@
703703
@ if {[hascap n]} {
704704
@ html "<p>Enter a new ticket:</p>"
705705
@ html "<ul><li><a href='tktnew'>New ticket</a></li></ul>"
706706
@ }
707707
@ </th1>
708
-@
708
+@
709709
@ <p>Choose a report format from the following list:</p>
710710
@ <ol>
711711
@ <th1>html $report_items</th1>
712712
@ </ol>
713
-@
713
+@
714714
@ <th1>
715715
@ if {[hascap t q]} {
716716
@ html "<p>Other options:</p>\n<ul>\n"
717717
@ if {[hascap t]} {
718718
@ html "<li><a href='rptnew'>New report format</a></li>\n"
@@ -750,11 +750,11 @@
750750
}
751751
752752
/*
753753
** The default template ticket report format:
754754
*/
755
-static char zDefaultReport[] =
755
+static char zDefaultReport[] =
756756
@ SELECT
757757
@ CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
758758
@ WHEN status='Review' THEN '#e8e8e8'
759759
@ WHEN status='Fixed' THEN '#cfe8bd'
760760
@ WHEN status='Tested' THEN '#bde5d6'
@@ -799,11 +799,11 @@
799799
}
800800
801801
/*
802802
** The default template ticket key:
803803
*/
804
-static const char zDefaultKey[] =
804
+static const char zDefaultKey[] =
805805
@ #ffffff Key:
806806
@ #f2dcdc Active
807807
@ #e8e8e8 Review
808808
@ #cfe8bd Fixed
809809
@ #bde5d6 Tested
@@ -880,7 +880,7 @@
880880
@ <input type="submit" name="setup" value="Cancel" />
881881
@ </p>
882882
@ </div></form>
883883
db_end_transaction(0);
884884
style_footer();
885
-
885
+
886886
}
887887
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -115,11 +115,11 @@
115 void (*xRebuild)(void), /* Run after successful update */
116 int height /* Height of the edit box */
117 ){
118 const char *z;
119 int isSubmit;
120
121 login_check_credentials();
122 if( !g.perm.Setup ){
123 login_needed();
124 }
125 if( P("setup") ){
@@ -314,43 +314,43 @@
314 @ <td colspan="3">
315 @ Enter a one-line summary of the ticket:<br />
316 @ <input type="text" name="title" size="60" value="$<title>" />
317 @ </td>
318 @ </tr>
319 @
320 @ <tr>
321 @ <td align="right">Type:</td>
322 @ <td align="left"><th1>combobox type $type_choices 1</th1></td>
323 @ <td align="left">What type of ticket is this?</td>
324 @ </tr>
325 @
326 @ <tr>
327 @ <td align="right">Version:</td>
328 @ <td align="left">
329 @ <input type="text" name="foundin" size="20" value="$<foundin>" />
330 @ </td>
331 @ <td align="left">In what version or build number do you observe
332 @ the problem?</td>
333 @ </tr>
334 @
335 @ <tr>
336 @ <td align="right">Severity:</td>
337 @ <td align="left"><th1>combobox severity $severity_choices 1</th1></td>
338 @ <td align="left">How debilitating is the problem? How badly does the problem
339 @ affect the operation of the product?</td>
340 @ </tr>
341 @
342 @ <tr>
343 @ <td align="right">EMail:</td>
344 @ <td align="left">
345 @ <input type="text" name="private_contact" value="$<private_contact>"
346 @ size="30" />
347 @ </td>
348 @ <td align="left"><u>Not publicly visible</u>
349 @ Used by developers to contact you with questions.</td>
350 @ </tr>
351 @
352 @ <tr>
353 @ <td colspan="3">
354 @ Enter a detailed description of the problem.
355 @ For code defects, be sure to provide details on exactly how
356 @ the problem can be reproduced. Provide as much detail as
@@ -359,11 +359,11 @@
359 @ <br />
360 @ <th1>set nline [linecount $comment 50 10]</th1>
361 @ <textarea name="icomment" cols="80" rows="$nline"
362 @ wrap="virtual" class="wikiedit">$<icomment></textarea><br />
363 @ </tr>
364 @
365 @ <th1>enable_output [info exists preview]</th1>
366 @ <tr><td colspan="3">
367 @ Description Preview:<br /><hr />
368 @ <th1>
369 @ if {$mutype eq "Wiki"} {
@@ -378,28 +378,28 @@
378 @ wiki "<nowiki>$icomment\n</nowiki>"
379 @ }
380 @ </th1>
381 @ <hr /></td></tr>
382 @ <th1>enable_output 1</th1>
383 @
384 @ <tr>
385 @ <td><td align="left">
386 @ <input type="submit" name="preview" value="Preview" />
387 @ </td>
388 @ <td align="left">See how the description will appear after formatting.</td>
389 @ </tr>
390 @
391 @ <th1>enable_output [info exists preview]</th1>
392 @ <tr>
393 @ <td><td align="left">
394 @ <input type="submit" name="submit" value="Submit" />
395 @ </td>
396 @ <td align="left">After filling in the information above, press this
397 @ button to create the new ticket</td>
398 @ </tr>
399 @ <th1>enable_output 1</th1>
400 @
401 @ <tr>
402 @ <td><td align="left">
403 @ <input type="submit" name="cancel" value="Cancel" />
404 @ </td>
405 @ <td>Abandon and forget this ticket</td>
@@ -477,11 +477,11 @@
477 @ </tr>
478 @ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td>
479 @ <td colspan="3" valign="top" class="tktDspValue">
480 @ $<foundin>
481 @ </td></tr>
482 @
483 @ <th1>
484 @ if {[info exists comment] && [string length $comment]>10} {
485 @ html {
486 @ <tr><td class="tktDspLabel">Description:</td></tr>
487 @ <tr><td colspan="5" class="tktDspValue">
@@ -577,55 +577,55 @@
577 @ </th1>
578 @ <table cellpadding="5">
579 @ <tr><td class="tktDspLabel">Title:</td><td>
580 @ <input type="text" name="title" value="$<title>" size="60" />
581 @ </td></tr>
582 @
583 @ <tr><td class="tktDspLabel">Status:</td><td>
584 @ <th1>combobox status $status_choices 1</th1>
585 @ </td></tr>
586 @
587 @ <tr><td class="tktDspLabel">Type:</td><td>
588 @ <th1>combobox type $type_choices 1</th1>
589 @ </td></tr>
590 @
591 @ <tr><td class="tktDspLabel">Severity:</td><td>
592 @ <th1>combobox severity $severity_choices 1</th1>
593 @ </td></tr>
594 @
595 @ <tr><td class="tktDspLabel">Priority:</td><td>
596 @ <th1>combobox priority $priority_choices 1</th1>
597 @ </td></tr>
598 @
599 @ <tr><td class="tktDspLabel">Resolution:</td><td>
600 @ <th1>combobox resolution $resolution_choices 1</th1>
601 @ </td></tr>
602 @
603 @ <tr><td class="tktDspLabel">Subsystem:</td><td>
604 @ <th1>combobox subsystem $subsystem_choices 1</th1>
605 @ </td></tr>
606 @
607 @ <th1>enable_output [hascap e]</th1>
608 @ <tr><td class="tktDspLabel">Contact:</td><td>
609 @ <input type="text" name="private_contact" size="40"
610 @ value="$<private_contact>" />
611 @ </td></tr>
612 @ <th1>enable_output 1</th1>
613 @
614 @ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td><td>
615 @ <input type="text" name="foundin" size="50" value="$<foundin>" />
616 @ </td></tr>
617 @
618 @ <tr><td colspan="2">
619 @ Append Remark with format
620 @ <th1>combobox mutype {Wiki HTML {Plain Text} {[links only]}} 1</th1>
621 @ from
622 @ <input type="text" name="username" value="$<username>" size="30" />:<br />
623 @ <textarea name="icomment" cols="80" rows="15"
624 @ wrap="virtual" class="wikiedit">$<icomment></textarea>
625 @ </td></tr>
626 @
627 @ <th1>enable_output [info exists preview]</th1>
628 @ <tr><td colspan="2">
629 @ Description Preview:<br><hr>
630 @ <th1>
631 @ if {$mutype eq "Wiki"} {
@@ -641,34 +641,34 @@
641 @ }
642 @ </th1>
643 @ <hr>
644 @ </td></tr>
645 @ <th1>enable_output 1</th1>
646 @
647 @ <tr>
648 @ <td align="right">
649 @ <input type="submit" name="preview" value="Preview" />
650 @ </td>
651 @ <td align="left">See how the description will appear after formatting.</td>
652 @ </tr>
653 @
654 @ <th1>enable_output [info exists preview]</th1>
655 @ <tr>
656 @ <td align="right">
657 @ <input type="submit" name="submit" value="Submit" />
658 @ </td>
659 @ <td align="left">Apply the changes shown above</td>
660 @ </tr>
661 @ <th1>enable_output 1</th1>
662 @
663 @ <tr>
664 @ <td align="right">
665 @ <input type="submit" name="cancel" value="Cancel" />
666 @ </td>
667 @ <td>Abandon this edit</td>
668 @ </tr>
669 @
670 @ </table>
671 ;
672
673 /*
674 ** Return the code used to generate the edit ticket page
@@ -703,16 +703,16 @@
703 @ if {[hascap n]} {
704 @ html "<p>Enter a new ticket:</p>"
705 @ html "<ul><li><a href='tktnew'>New ticket</a></li></ul>"
706 @ }
707 @ </th1>
708 @
709 @ <p>Choose a report format from the following list:</p>
710 @ <ol>
711 @ <th1>html $report_items</th1>
712 @ </ol>
713 @
714 @ <th1>
715 @ if {[hascap t q]} {
716 @ html "<p>Other options:</p>\n<ul>\n"
717 @ if {[hascap t]} {
718 @ html "<li><a href='rptnew'>New report format</a></li>\n"
@@ -750,11 +750,11 @@
750 }
751
752 /*
753 ** The default template ticket report format:
754 */
755 static char zDefaultReport[] =
756 @ SELECT
757 @ CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
758 @ WHEN status='Review' THEN '#e8e8e8'
759 @ WHEN status='Fixed' THEN '#cfe8bd'
760 @ WHEN status='Tested' THEN '#bde5d6'
@@ -799,11 +799,11 @@
799 }
800
801 /*
802 ** The default template ticket key:
803 */
804 static const char zDefaultKey[] =
805 @ #ffffff Key:
806 @ #f2dcdc Active
807 @ #e8e8e8 Review
808 @ #cfe8bd Fixed
809 @ #bde5d6 Tested
@@ -880,7 +880,7 @@
880 @ <input type="submit" name="setup" value="Cancel" />
881 @ </p>
882 @ </div></form>
883 db_end_transaction(0);
884 style_footer();
885
886 }
887
--- src/tktsetup.c
+++ src/tktsetup.c
@@ -115,11 +115,11 @@
115 void (*xRebuild)(void), /* Run after successful update */
116 int height /* Height of the edit box */
117 ){
118 const char *z;
119 int isSubmit;
120
121 login_check_credentials();
122 if( !g.perm.Setup ){
123 login_needed();
124 }
125 if( P("setup") ){
@@ -314,43 +314,43 @@
314 @ <td colspan="3">
315 @ Enter a one-line summary of the ticket:<br />
316 @ <input type="text" name="title" size="60" value="$<title>" />
317 @ </td>
318 @ </tr>
319 @
320 @ <tr>
321 @ <td align="right">Type:</td>
322 @ <td align="left"><th1>combobox type $type_choices 1</th1></td>
323 @ <td align="left">What type of ticket is this?</td>
324 @ </tr>
325 @
326 @ <tr>
327 @ <td align="right">Version:</td>
328 @ <td align="left">
329 @ <input type="text" name="foundin" size="20" value="$<foundin>" />
330 @ </td>
331 @ <td align="left">In what version or build number do you observe
332 @ the problem?</td>
333 @ </tr>
334 @
335 @ <tr>
336 @ <td align="right">Severity:</td>
337 @ <td align="left"><th1>combobox severity $severity_choices 1</th1></td>
338 @ <td align="left">How debilitating is the problem? How badly does the problem
339 @ affect the operation of the product?</td>
340 @ </tr>
341 @
342 @ <tr>
343 @ <td align="right">EMail:</td>
344 @ <td align="left">
345 @ <input type="text" name="private_contact" value="$<private_contact>"
346 @ size="30" />
347 @ </td>
348 @ <td align="left"><u>Not publicly visible</u>
349 @ Used by developers to contact you with questions.</td>
350 @ </tr>
351 @
352 @ <tr>
353 @ <td colspan="3">
354 @ Enter a detailed description of the problem.
355 @ For code defects, be sure to provide details on exactly how
356 @ the problem can be reproduced. Provide as much detail as
@@ -359,11 +359,11 @@
359 @ <br />
360 @ <th1>set nline [linecount $comment 50 10]</th1>
361 @ <textarea name="icomment" cols="80" rows="$nline"
362 @ wrap="virtual" class="wikiedit">$<icomment></textarea><br />
363 @ </tr>
364 @
365 @ <th1>enable_output [info exists preview]</th1>
366 @ <tr><td colspan="3">
367 @ Description Preview:<br /><hr />
368 @ <th1>
369 @ if {$mutype eq "Wiki"} {
@@ -378,28 +378,28 @@
378 @ wiki "<nowiki>$icomment\n</nowiki>"
379 @ }
380 @ </th1>
381 @ <hr /></td></tr>
382 @ <th1>enable_output 1</th1>
383 @
384 @ <tr>
385 @ <td><td align="left">
386 @ <input type="submit" name="preview" value="Preview" />
387 @ </td>
388 @ <td align="left">See how the description will appear after formatting.</td>
389 @ </tr>
390 @
391 @ <th1>enable_output [info exists preview]</th1>
392 @ <tr>
393 @ <td><td align="left">
394 @ <input type="submit" name="submit" value="Submit" />
395 @ </td>
396 @ <td align="left">After filling in the information above, press this
397 @ button to create the new ticket</td>
398 @ </tr>
399 @ <th1>enable_output 1</th1>
400 @
401 @ <tr>
402 @ <td><td align="left">
403 @ <input type="submit" name="cancel" value="Cancel" />
404 @ </td>
405 @ <td>Abandon and forget this ticket</td>
@@ -477,11 +477,11 @@
477 @ </tr>
478 @ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td>
479 @ <td colspan="3" valign="top" class="tktDspValue">
480 @ $<foundin>
481 @ </td></tr>
482 @
483 @ <th1>
484 @ if {[info exists comment] && [string length $comment]>10} {
485 @ html {
486 @ <tr><td class="tktDspLabel">Description:</td></tr>
487 @ <tr><td colspan="5" class="tktDspValue">
@@ -577,55 +577,55 @@
577 @ </th1>
578 @ <table cellpadding="5">
579 @ <tr><td class="tktDspLabel">Title:</td><td>
580 @ <input type="text" name="title" value="$<title>" size="60" />
581 @ </td></tr>
582 @
583 @ <tr><td class="tktDspLabel">Status:</td><td>
584 @ <th1>combobox status $status_choices 1</th1>
585 @ </td></tr>
586 @
587 @ <tr><td class="tktDspLabel">Type:</td><td>
588 @ <th1>combobox type $type_choices 1</th1>
589 @ </td></tr>
590 @
591 @ <tr><td class="tktDspLabel">Severity:</td><td>
592 @ <th1>combobox severity $severity_choices 1</th1>
593 @ </td></tr>
594 @
595 @ <tr><td class="tktDspLabel">Priority:</td><td>
596 @ <th1>combobox priority $priority_choices 1</th1>
597 @ </td></tr>
598 @
599 @ <tr><td class="tktDspLabel">Resolution:</td><td>
600 @ <th1>combobox resolution $resolution_choices 1</th1>
601 @ </td></tr>
602 @
603 @ <tr><td class="tktDspLabel">Subsystem:</td><td>
604 @ <th1>combobox subsystem $subsystem_choices 1</th1>
605 @ </td></tr>
606 @
607 @ <th1>enable_output [hascap e]</th1>
608 @ <tr><td class="tktDspLabel">Contact:</td><td>
609 @ <input type="text" name="private_contact" size="40"
610 @ value="$<private_contact>" />
611 @ </td></tr>
612 @ <th1>enable_output 1</th1>
613 @
614 @ <tr><td class="tktDspLabel">Version&nbsp;Found&nbsp;In:</td><td>
615 @ <input type="text" name="foundin" size="50" value="$<foundin>" />
616 @ </td></tr>
617 @
618 @ <tr><td colspan="2">
619 @ Append Remark with format
620 @ <th1>combobox mutype {Wiki HTML {Plain Text} {[links only]}} 1</th1>
621 @ from
622 @ <input type="text" name="username" value="$<username>" size="30" />:<br />
623 @ <textarea name="icomment" cols="80" rows="15"
624 @ wrap="virtual" class="wikiedit">$<icomment></textarea>
625 @ </td></tr>
626 @
627 @ <th1>enable_output [info exists preview]</th1>
628 @ <tr><td colspan="2">
629 @ Description Preview:<br><hr>
630 @ <th1>
631 @ if {$mutype eq "Wiki"} {
@@ -641,34 +641,34 @@
641 @ }
642 @ </th1>
643 @ <hr>
644 @ </td></tr>
645 @ <th1>enable_output 1</th1>
646 @
647 @ <tr>
648 @ <td align="right">
649 @ <input type="submit" name="preview" value="Preview" />
650 @ </td>
651 @ <td align="left">See how the description will appear after formatting.</td>
652 @ </tr>
653 @
654 @ <th1>enable_output [info exists preview]</th1>
655 @ <tr>
656 @ <td align="right">
657 @ <input type="submit" name="submit" value="Submit" />
658 @ </td>
659 @ <td align="left">Apply the changes shown above</td>
660 @ </tr>
661 @ <th1>enable_output 1</th1>
662 @
663 @ <tr>
664 @ <td align="right">
665 @ <input type="submit" name="cancel" value="Cancel" />
666 @ </td>
667 @ <td>Abandon this edit</td>
668 @ </tr>
669 @
670 @ </table>
671 ;
672
673 /*
674 ** Return the code used to generate the edit ticket page
@@ -703,16 +703,16 @@
703 @ if {[hascap n]} {
704 @ html "<p>Enter a new ticket:</p>"
705 @ html "<ul><li><a href='tktnew'>New ticket</a></li></ul>"
706 @ }
707 @ </th1>
708 @
709 @ <p>Choose a report format from the following list:</p>
710 @ <ol>
711 @ <th1>html $report_items</th1>
712 @ </ol>
713 @
714 @ <th1>
715 @ if {[hascap t q]} {
716 @ html "<p>Other options:</p>\n<ul>\n"
717 @ if {[hascap t]} {
718 @ html "<li><a href='rptnew'>New report format</a></li>\n"
@@ -750,11 +750,11 @@
750 }
751
752 /*
753 ** The default template ticket report format:
754 */
755 static char zDefaultReport[] =
756 @ SELECT
757 @ CASE WHEN status IN ('Open','Verified') THEN '#f2dcdc'
758 @ WHEN status='Review' THEN '#e8e8e8'
759 @ WHEN status='Fixed' THEN '#cfe8bd'
760 @ WHEN status='Tested' THEN '#bde5d6'
@@ -799,11 +799,11 @@
799 }
800
801 /*
802 ** The default template ticket key:
803 */
804 static const char zDefaultKey[] =
805 @ #ffffff Key:
806 @ #f2dcdc Active
807 @ #e8e8e8 Review
808 @ #cfe8bd Fixed
809 @ #bde5d6 Tested
@@ -880,7 +880,7 @@
880 @ <input type="submit" name="setup" value="Cancel" />
881 @ </p>
882 @ </div></form>
883 db_end_transaction(0);
884 style_footer();
885
886 }
887

Keyboard Shortcuts

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