@@ -107,11 +107,11 @@
107 107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
108 108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
109 109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Print the "Index:" message that patches wants to see at the top of a diff.
110 110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
111 111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void diff_print_index(const char *zFile, u64 diffFlags, Blob *diffBlob){
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (diffFlags & (DIFF_SIDEBYSIDE|DIFF_BRIEF|DIFF_NUMSTAT))==0 ){
112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (diffFlags & (DIFF_SIDEBYSIDE|DIFF_BRIEF|DIFF_NUMSTAT|DIFF_WEBPAGE))==0 ){
113 113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z = mprintf("Index: %s\n%.66c\n", zFile, '=');
114 114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !diffBlob ){
115 115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%s", z);
116 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
117 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(diffBlob, "%s", z);
@@ -126,10 +126,16 @@
126 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void diff_print_filenames(const char *zLeft, const char *zRight,
127 127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
u64 diffFlags, Blob *diffBlob){
128 128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z = 0;
129 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( diffFlags & DIFF_BRIEF ){
130 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* no-op */
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( diffFlags & DIFF_WEBPAGE ){
132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zLeft,zRight)==0 ){
133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z = mprintf("<h1>%h</h1>\n", zLeft);
134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ z = mprintf("<h1>%h ⇆ %h</h1>\n", zLeft, zRight);
136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
131 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( diffFlags & DIFF_SIDEBYSIDE ){
132 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int w = diff_width(diffFlags);
133 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n1 = strlen(zLeft);
134 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n2 = strlen(zRight);
135 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int x;
@@ -154,10 +160,87 @@
154 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
155 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(diffBlob, "%s", z);
156 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
157 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(z);
158 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Default header text for diff with --webpage
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static const char zWebpageHdr[] =
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <!DOCTYPE html>
171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <html>
172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <head>
173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <style>
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ table.sbsdiffcols {
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ width: 90%;
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ border-spacing: 0;
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ font-size: xx-small;
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ table.sbsdiffcols td {
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ padding: 0;
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ vertical-align: top;
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ table.sbsdiffcols pre {
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ margin: 0;
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ padding: 0;
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ border: 0;
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ font-size: inherit;
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ background: inherit;
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ color: inherit;
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ div.difflncol {
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ padding-right: 1em;
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ text-align: right;
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ color: #a0a0a0;
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ div.difftxtcol {
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ width: 45em;
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ overflow-x: auto;
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ div.diffmkrcol {
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ padding: 0 1em;
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ span.diffchng {
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ background-color: #c0c0ff;
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ span.diffadd {
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ background-color: #c0ffc0;
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ span.diffrm {
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ background-color: #ffc8c8;
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ span.diffhr {
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ display: inline-block;
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ margin: .5em 0 1em;
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ color: #0000ff;
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ span.diffln {
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ color: #a0a0a0;
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ }
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </style>
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </head>
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <body>
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ;
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Print a header or footer on the overall diff output.
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** This is only a factor for --webpage, in which case the header
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is the HTML header CSS definitions and the footer is the HTML
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** close tags.
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void diff_header(u64 diffFlags){
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (diffFlags & DIFF_WEBPAGE)!=0 ){
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%s", zWebpageHdr);
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void diff_footer(u64 diffFlags){
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (diffFlags & DIFF_WEBPAGE)!=0 ){
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("</body></html>\n");
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
159 242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
160 243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
161 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Show the difference between two files, one in memory and one on disk.
162 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
163 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** The difference is the set of edits needed to transform pFile1 into
@@ -847,22 +930,23 @@
847 930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -c|--context N Use N lines of context
848 931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --diff-binary BOOL Include binary files with external commands
849 932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --exec-abs-paths Force absolute path names on external commands
850 933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --exec-rel-paths Force relative path names on external commands
851 934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -r|--from VERSION Select VERSION as source for the diff
935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -w|--ignore-all-space Ignore white space when comparing lines
852 936 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -i|--internal Use internal diff logic
937 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -N|--new-file Alias for --verbose
853 938 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --numstat Show only the number of lines delete and added
854 939 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -y|--side-by-side Side-by-side diff
855 940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --strip-trailing-cr Strip trailing CR
856 941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --tclsh PATH Tcl/Tk used for --tk (default: "tclsh")
857 942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --tk Launch a Tcl/Tk GUI for display
858 943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --to VERSION Select VERSION as target for the diff
859 944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --undo Diff against the "undo" buffer
860 945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** --unified Unified diff
861 946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -v|--verbose Output complete text of added or deleted files
862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -N|--new-file Alias for --verbose
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -w|--ignore-all-space Ignore white space when comparing lines
947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --webpage Format output as a stand-alone HTML webpage
864 948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -W|--width N Width of lines in side-by-side diff
865 949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -Z|--ignore-trailing-space Ignore changes to end-of-line whitespace
866 950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
867 951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void diff_cmd(void){
868 952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int isGDiff; /* True for gdiff. False for normal diff */
@@ -953,10 +1037,11 @@
953 1037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ridTo);
954 1038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zFrom==0 ){
955 1039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("check-in %s has no parent", zTo);
956 1040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
957 1041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_header(diffFlags);
958 1043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( againstUndo ){
959 1044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_lget_int("undo_available",0)==0 ){
960 1045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("No undo or redo is available\n");
961 1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
962 1047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -980,10 +1065,11 @@
980 1065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
981 1066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(pFileDir[i].zName);
982 1067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
983 1068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(pFileDir);
984 1069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ diff_footer(diffFlags);
985 1071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if ( diffFlags & DIFF_NUMSTAT ){
986 1072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("%10d %10d TOTAL over %d changed files\n",
987 1073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.diffCnt[1], g.diffCnt[2], g.diffCnt[0]);
988 1074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
989 1075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
990 1076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!