@@ -1924,12 +1924,12 @@
1924 1924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nPending = 0;
1925 1925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1926 1926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void dfunifiedSkip(DiffBuilder *p, unsigned int n, int isFinal){
1927 1927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
dfunifiedFinishRow(p);
1928 1928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (p->lnLeft || p->lnRight) && !isFinal ){
1929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(p->pOut, "<tr><td class=\"diffskip\" colspan=\"2\">"
1930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- "<hr></td><td></td><td></td></tr>\n", -1);
1929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "<tr><td class=\"diffln difflne\">"
1930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "︙</td><td></td><td></td></tr>\n", -1);
1931 1931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1932 1932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->lnLeft += n;
1933 1933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->lnRight += n;
1934 1934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1935 1935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void dfunifiedCommon(DiffBuilder *p, const DLine *pLine){
@@ -2039,11 +2039,187 @@
2039 2039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->xEnd = dfunifiedEnd;
2040 2040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->lnLeft = p->lnRight = 0;
2041 2041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->eState = 0;
2042 2042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->nPending = 0;
2043 2043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p->pOut = pOut;
2044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_append(pOut, "<table class=\"diff\">\n", -1);
2044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(pOut, "<table class=\"diff udiff\">\n", -1);
2045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&p->aCol[0], 0, 0);
2046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&p->aCol[1], 0, 0);
2047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&p->aCol[2], 0, 0);
2048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&p->aCol[3], 0, 0);
2049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&p->aCol[4], 0, 0);
2050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return p;
2051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /************************* DiffBuilderSplit ******************************/
2054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Accumulator strategy:
2056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
2057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Left line numbers are output directly to p->pOut
2058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Left text accumulates in p->aCol[0].
2059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Edit marks accumulates in p->aCol[1].
2060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Right line numbers accumulate in p->aCol[2].
2061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * Right text accumulates in p->aCol[3].
2062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
2063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** eState:
2064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 0 In common block
2065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 1 Have <del> on the left
2066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 2 Have <ins> on the right
2067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 3 Have <del> on left and <ins> on the right
2068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
2069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitChangeState(DiffBuilder *p, int newState){
2070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( p->eState == newState ) return;
2071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p->eState&1)==0 && (newState & 1)!=0 ){
2072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "<del>", 5);
2073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "<del>", 5);
2074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState |= 1;
2075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (p->eState&1)!=0 && (newState & 1)==0 ){
2076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</del>", 6);
2077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "</del>", 6);
2078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState &= ~1;
2079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p->eState&2)==0 && (newState & 2)!=0 ){
2081 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[2], "<ins>", 5);
2082 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "<ins>", 5);
2083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState |= 2;
2084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( (p->eState&2)!=0 && (newState & 2)==0 ){
2085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[2], "</ins>", 6);
2086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "</ins>", 6);
2087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState &= ~2;
2088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitFinishRow(DiffBuilder *p){
2091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( blob_size(&p->aCol[0])==0 ) return;
2092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitChangeState(p, 0);
2093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</pre></td><td class=\"difftxt difftxtl\"><pre>\n",-1);
2094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_xfer(p->pOut, &p->aCol[0]);
2095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</pre></td><td class=\"diffsep\"><pre>\n", -1);
2096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_xfer(p->pOut, &p->aCol[1]);
2097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</pre></td><td class=\"diffln difflnr\"><pre>\n",-1);
2098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_xfer(p->pOut, &p->aCol[2]);
2099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</pre></td><td class=\"difftxt difftxtr\"><pre>\n",-1);
2100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_xfer(p->pOut, &p->aCol[3]);
2101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</pre></td></tr>\n", -1);
2102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitStartRow(DiffBuilder *p){
2104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( blob_size(&p->aCol[0])>0 ) return;
2105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut,"<tr><td class=\"diffln difflnl\"><pre>\n", -1);
2106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState = 0;
2107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitSkip(DiffBuilder *p, unsigned int n, int isFinal){
2109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitFinishRow(p);
2110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (p->lnLeft || p->lnRight) && !isFinal ){
2111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut,
2112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<tr><td class=\"diffln difflnl difflne\">︙</td>"
2113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<td></td><td></td>"
2114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<td class=\"diffln difflnr difflne\">︙</td>"
2115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "<td/td></tr>\n", -1);
2116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnLeft += n;
2118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnRight += n;
2119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitCommon(DiffBuilder *p, const DLine *pLine){
2121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCol = 0;
2122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitStartRow(p);
2123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitChangeState(p, 0);
2124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnLeft++;
2125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnRight++;
2126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"%d\n", p->lnLeft);
2127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
2128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[0], '\n');
2129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[1], '\n');
2130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&p->aCol[2],"%d\n",p->lnRight);
2131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[3], pLine->z, (int)pLine->n, &iCol);
2132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[3], '\n');
2133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitInsert(DiffBuilder *p, const DLine *pLine){
2135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCol = 0;
2136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitStartRow(p);
2137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitChangeState(p, 2);
2138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnRight++;
2139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(p->pOut, '\n');
2140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[0], '\n');
2141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[1], ">\n", -1);
2142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&p->aCol[2],"%d\n", p->lnRight);
2143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "<ins>", 5);
2144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[3], pLine->z, (int)pLine->n, &iCol);
2145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "</ins>\n", 7);
2146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitDelete(DiffBuilder *p, const DLine *pLine){
2148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCol = 0;
2149 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitStartRow(p);
2150 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitChangeState(p, 1);
2151 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnLeft++;
2152 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"%d\n", p->lnLeft);
2153 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "<del>", 5);
2154 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[0], pLine->z, (int)pLine->n, &iCol);
2155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "</del>\n", 7);
2156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[1], "<\n", -1);
2157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[2],'\n');
2158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[3],'\n');
2159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitEdit(DiffBuilder *p, const DLine *pX, const DLine *pY){
2161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int i;
2162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int x;
2163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iCol;
2164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ChangeSpan span;
2165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ oneLineChange(pX, pY, &span);
2166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitStartRow(p);
2167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitChangeState(p, 3);
2168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnLeft++;
2169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnRight++;
2170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(p->pOut,"%d\n", p->lnLeft);
2171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=x=iCol=0; i<span.n; i++){
2172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ofst = span.a[i].iStart1;
2173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int len = span.a[i].iLen1;
2174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( len ){
2175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[0], pX->z+x, ofst - x, &iCol);
2176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x = ofst;
2177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "<del>", 5);
2178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[0], pX->z+x, len, &iCol);
2179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x += len;
2180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[0], "</del>", 6);
2181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x<pX->n ) jsonize_to_blob(&p->aCol[0], pX->z+x, pX->n - x, &iCol);
2184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[0], '\n');
2185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[1], "|\n", 2);
2187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
2188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_appendf(&p->aCol[2],"%d\n", p->lnRight);
2189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=x=iCol=0; i<span.n; i++){
2190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int ofst = span.a[i].iStart2;
2191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int len = span.a[i].iLen2;
2192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( len ){
2193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[3], pY->z+x, ofst - x, &iCol);
2194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x = ofst;
2195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "<ins>", 5);
2196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ jsonize_to_blob(&p->aCol[3], pY->z+x, len, &iCol);
2197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x += len;
2198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(&p->aCol[3], "</ins>", 6);
2199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( x<pY->n ) jsonize_to_blob(&p->aCol[3], pY->z+x, pY->n - x, &iCol);
2202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append_char(&p->aCol[3], '\n');
2203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static void dfsplitEnd(DiffBuilder *p){
2205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ dfsplitFinishRow(p);
2206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(p->pOut, "</table>\n",-1);
2207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(p);
2208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ static DiffBuilder *dfsplitNew(Blob *pOut){
2210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ DiffBuilder *p = fossil_malloc(sizeof(*p));
2211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xSkip = dfsplitSkip;
2212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xCommon = dfsplitCommon;
2213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xInsert = dfsplitInsert;
2214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xDelete = dfsplitDelete;
2215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xEdit = dfsplitEdit;
2216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->xEnd = dfsplitEnd;
2217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->lnLeft = p->lnRight = 0;
2218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->eState = 0;
2219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p->pOut = pOut;
2220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_append(pOut, "<table class=\"diff splitdiff\">\n", -1);
2045 2221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&p->aCol[0], 0, 0);
2046 2222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&p->aCol[1], 0, 0);
2047 2223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&p->aCol[2], 0, 0);
2048 2224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&p->aCol[3], 0, 0);
2049 2225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&p->aCol[4], 0, 0);
@@ -2774,11 +2950,16 @@
2774 2950 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( diffFlags & DIFF_JSON ){
2775 2951 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DiffBuilder *pBuilder = dfjsonNew(pOut);
2776 2952 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
formatDiff(&c, pRe, diffFlags, pBuilder);
2777 2953 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_append_char(pOut, '\n');
2778 2954 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( diffFlags & DIFF_SIDEBYSIDE ){
2779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- sbsDiff(&c, pOut, pRe, diffFlags);
2955 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( diffFlags & DIFF_HTML ){
2956 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ DiffBuilder *pBuilder = dfsplitNew(pOut);
2957 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ formatDiff(&c, pRe, diffFlags, pBuilder);
2958 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
2959 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sbsDiff(&c, pOut, pRe, diffFlags);
2960 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2780 2961 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( diffFlags & DIFF_DEBUG ){
2781 2962 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DiffBuilder *pBuilder = dfdebugNew(pOut);
2782 2963 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
formatDiff(&c, pRe, diffFlags, pBuilder);
2783 2964 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( diffFlags & DIFF_HTML ){
2784 2965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
DiffBuilder *pBuilder = dfunifiedNew(pOut);
2785 2966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2786 2967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
A DDED src/diff.js