Fossil SCM
Move the "looks_like" functions out of diff.c and into a source file of their own: "lookslike.c".
Commit
b4c97d76a7ec6ad34e26a55ce96bbea28f93a5ef
Parent
6b59760e23f5c0e…
8 files changed
+2
+2
-353
+119
+11
-1
+1
+10
-4
+12
+10
+2
| --- src/blob.c | ||
| +++ src/blob.c | ||
| @@ -1096,11 +1096,13 @@ | ||
| 1096 | 1096 | ** to be UTF-8 already, so no conversion is done. |
| 1097 | 1097 | */ |
| 1098 | 1098 | void blob_to_utf8_no_bom(Blob *pBlob, int useMbcs){ |
| 1099 | 1099 | char *zUtf8; |
| 1100 | 1100 | int bomSize = 0; |
| 1101 | +#if defined(_WIN32) || defined(__CYGWIN__) | |
| 1101 | 1102 | int bomReverse = 0; |
| 1103 | +#endif | |
| 1102 | 1104 | if( starts_with_utf8_bom(pBlob, &bomSize) ){ |
| 1103 | 1105 | struct Blob temp; |
| 1104 | 1106 | zUtf8 = blob_str(pBlob) + bomSize; |
| 1105 | 1107 | blob_zero(&temp); |
| 1106 | 1108 | blob_append(&temp, zUtf8, -1); |
| 1107 | 1109 |
| --- src/blob.c | |
| +++ src/blob.c | |
| @@ -1096,11 +1096,13 @@ | |
| 1096 | ** to be UTF-8 already, so no conversion is done. |
| 1097 | */ |
| 1098 | void blob_to_utf8_no_bom(Blob *pBlob, int useMbcs){ |
| 1099 | char *zUtf8; |
| 1100 | int bomSize = 0; |
| 1101 | int bomReverse = 0; |
| 1102 | if( starts_with_utf8_bom(pBlob, &bomSize) ){ |
| 1103 | struct Blob temp; |
| 1104 | zUtf8 = blob_str(pBlob) + bomSize; |
| 1105 | blob_zero(&temp); |
| 1106 | blob_append(&temp, zUtf8, -1); |
| 1107 |
| --- src/blob.c | |
| +++ src/blob.c | |
| @@ -1096,11 +1096,13 @@ | |
| 1096 | ** to be UTF-8 already, so no conversion is done. |
| 1097 | */ |
| 1098 | void blob_to_utf8_no_bom(Blob *pBlob, int useMbcs){ |
| 1099 | char *zUtf8; |
| 1100 | int bomSize = 0; |
| 1101 | #if defined(_WIN32) || defined(__CYGWIN__) |
| 1102 | int bomReverse = 0; |
| 1103 | #endif |
| 1104 | if( starts_with_utf8_bom(pBlob, &bomSize) ){ |
| 1105 | struct Blob temp; |
| 1106 | zUtf8 = blob_str(pBlob) + bomSize; |
| 1107 | blob_zero(&temp); |
| 1108 | blob_append(&temp, zUtf8, -1); |
| 1109 |
+2
-353
| --- src/diff.c | ||
| +++ src/diff.c | ||
| @@ -54,41 +54,17 @@ | ||
| 54 | 54 | "cannot compute difference between symlink and regular file\n" |
| 55 | 55 | |
| 56 | 56 | #define DIFF_TOO_MANY_CHANGES \ |
| 57 | 57 | "more than 10,000 changes\n" |
| 58 | 58 | |
| 59 | -/* | |
| 60 | -** This macro is designed to return non-zero if the specified blob contains | |
| 61 | -** data that MAY be binary in nature; otherwise, zero will be returned. | |
| 62 | -*/ | |
| 63 | -#define looks_like_binary(blob) \ | |
| 64 | - ((looks_like_utf8((blob), LOOK_BINARY) & LOOK_BINARY) != LOOK_NONE) | |
| 65 | - | |
| 66 | -/* | |
| 67 | -** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 68 | -** to convey status information about the blob content. | |
| 69 | -*/ | |
| 70 | -#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 71 | -#define LOOK_NUL ((int)0x00000001) /* One or more NUL chars were found. */ | |
| 72 | -#define LOOK_CR ((int)0x00000002) /* One or more CR chars were found. */ | |
| 73 | -#define LOOK_LONE_CR ((int)0x00000004) /* An unpaired CR char was found. */ | |
| 74 | -#define LOOK_LF ((int)0x00000008) /* One or more LF chars were found. */ | |
| 75 | -#define LOOK_LONE_LF ((int)0x00000010) /* An unpaired LF char was found. */ | |
| 76 | -#define LOOK_CRLF ((int)0x00000020) /* One or more CR/LF pairs were found. */ | |
| 77 | -#define LOOK_LONG ((int)0x00000040) /* An over length line was found. */ | |
| 78 | -#define LOOK_ODD ((int)0x00000080) /* An odd number of bytes was found. */ | |
| 79 | -#define LOOK_SHORT ((int)0x00000100) /* Unable to perform full check. */ | |
| 80 | -#define LOOK_INVALID ((int)0x00000200) /* Invalid sequence was found. */ | |
| 81 | -#define LOOK_BINARY (LOOK_NUL | LOOK_LONG | LOOK_SHORT) /* May be binary. */ | |
| 82 | -#define LOOK_EOL (LOOK_LONE_CR | LOOK_LONE_LF | LOOK_CRLF) /* Line seps. */ | |
| 83 | -#endif /* INTERFACE */ | |
| 84 | - | |
| 85 | 59 | /* |
| 86 | 60 | ** Maximum length of a line in a text file, in bytes. (2**13 = 8192 bytes) |
| 87 | 61 | */ |
| 88 | 62 | #define LENGTH_MASK_SZ 13 |
| 89 | 63 | #define LENGTH_MASK ((1<<LENGTH_MASK_SZ)-1) |
| 64 | + | |
| 65 | +#endif /* INTERFACE */ | |
| 90 | 66 | |
| 91 | 67 | /* |
| 92 | 68 | ** Information about each line of a file being diffed. |
| 93 | 69 | ** |
| 94 | 70 | ** The lower LENGTH_MASK_SZ bits of the hash (DLine.h) are the length |
| @@ -201,282 +177,10 @@ | ||
| 201 | 177 | /* Return results */ |
| 202 | 178 | *pnLine = nLine; |
| 203 | 179 | return a; |
| 204 | 180 | } |
| 205 | 181 | |
| 206 | -/* | |
| 207 | -** This function attempts to scan each logical line within the blob to | |
| 208 | -** determine the type of content it appears to contain. The return value | |
| 209 | -** is a combination of one or more of the LOOK_XXX flags (see above): | |
| 210 | -** | |
| 211 | -** !LOOK_BINARY -- The content appears to consist entirely of text; however, | |
| 212 | -** the encoding may not be UTF-8. | |
| 213 | -** | |
| 214 | -** LOOK_BINARY -- The content appears to be binary because it contains one | |
| 215 | -** or more embedded NUL characters or an extremely long line. | |
| 216 | -** Since this function does not understand UTF-16, it may | |
| 217 | -** falsely consider UTF-16 text to be binary. | |
| 218 | -** | |
| 219 | -** Additional flags (i.e. those other than the ones included in LOOK_BINARY) | |
| 220 | -** may be present in the result as well; however, they should not impact the | |
| 221 | -** determination of text versus binary content. | |
| 222 | -** | |
| 223 | -************************************ WARNING ********************************** | |
| 224 | -** | |
| 225 | -** This function does not validate that the blob content is properly formed | |
| 226 | -** UTF-8. It assumes that all code points are the same size. It does not | |
| 227 | -** validate any code points. It makes no attempt to detect if any [invalid] | |
| 228 | -** switches between UTF-8 and other encodings occur. | |
| 229 | -** | |
| 230 | -** The only code points that this function cares about are the NUL character, | |
| 231 | -** carriage-return, and line-feed. | |
| 232 | -** | |
| 233 | -** This function examines the contents of the blob until one of the flags | |
| 234 | -** specified in "stopFlags" is set. | |
| 235 | -** | |
| 236 | -************************************ WARNING ********************************** | |
| 237 | -*/ | |
| 238 | -int looks_like_utf8(const Blob *pContent, int stopFlags){ | |
| 239 | - const char *z = blob_buffer(pContent); | |
| 240 | - unsigned int n = blob_size(pContent); | |
| 241 | - int j, c, flags = LOOK_NONE; /* Assume UTF-8 text, prove otherwise */ | |
| 242 | - | |
| 243 | - if( n==0 ) return flags; /* Empty file -> text */ | |
| 244 | - c = *z; | |
| 245 | - if( c==0 ){ | |
| 246 | - flags |= LOOK_NUL; /* NUL character in a file -> binary */ | |
| 247 | - }else if( c=='\r' ){ | |
| 248 | - flags |= LOOK_CR; | |
| 249 | - if( n<=1 || z[1]!='\n' ){ | |
| 250 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 251 | - } | |
| 252 | - } | |
| 253 | - j = (c!='\n'); | |
| 254 | - if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ | |
| 255 | - while( !(flags&stopFlags) && --n>0 ){ | |
| 256 | - int c2 = c; | |
| 257 | - c = *++z; ++j; | |
| 258 | - if( c==0 ){ | |
| 259 | - flags |= LOOK_NUL; /* NUL character in a file -> binary */ | |
| 260 | - }else if( c=='\n' ){ | |
| 261 | - flags |= LOOK_LF; | |
| 262 | - if( c2=='\r' ){ | |
| 263 | - flags |= (LOOK_CR | LOOK_CRLF); /* Found LF preceded by CR */ | |
| 264 | - }else{ | |
| 265 | - flags |= LOOK_LONE_LF; | |
| 266 | - } | |
| 267 | - if( j>LENGTH_MASK ){ | |
| 268 | - flags |= LOOK_LONG; /* Very long line -> binary */ | |
| 269 | - } | |
| 270 | - j = 0; | |
| 271 | - }else if( c=='\r' ){ | |
| 272 | - flags |= LOOK_CR; | |
| 273 | - if( n<=1 || z[1]!='\n' ){ | |
| 274 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 275 | - } | |
| 276 | - } | |
| 277 | - } | |
| 278 | - if( n ){ | |
| 279 | - flags |= LOOK_SHORT; /* The whole blob was not examined */ | |
| 280 | - } | |
| 281 | - if( j>LENGTH_MASK ){ | |
| 282 | - flags |= LOOK_LONG; /* Very long line -> binary */ | |
| 283 | - } | |
| 284 | - return flags; | |
| 285 | -} | |
| 286 | - | |
| 287 | -/* | |
| 288 | -** Define the type needed to represent a Unicode (UTF-16) character. | |
| 289 | -*/ | |
| 290 | -#ifndef WCHAR_T | |
| 291 | -# ifdef _WIN32 | |
| 292 | -# define WCHAR_T wchar_t | |
| 293 | -# else | |
| 294 | -# define WCHAR_T unsigned short | |
| 295 | -# endif | |
| 296 | -#endif | |
| 297 | - | |
| 298 | -/* | |
| 299 | -** Maximum length of a line in a text file, in UTF-16 characters. (4096) | |
| 300 | -** The number of bytes represented by this value cannot exceed LENGTH_MASK | |
| 301 | -** bytes, because that is the line buffer size used by the diff engine. | |
| 302 | -*/ | |
| 303 | -#define UTF16_LENGTH_MASK_SZ (LENGTH_MASK_SZ-(sizeof(WCHAR_T)-sizeof(char))) | |
| 304 | -#define UTF16_LENGTH_MASK ((1<<UTF16_LENGTH_MASK_SZ)-1) | |
| 305 | - | |
| 306 | -/* | |
| 307 | -** This macro is used to swap the byte order of a UTF-16 character in the | |
| 308 | -** looks_like_utf16() function. | |
| 309 | -*/ | |
| 310 | -#define UTF16_SWAP(ch) ((((ch) << 8) & 0xFF00) | (((ch) >> 8) & 0xFF)) | |
| 311 | -#define UTF16_SWAP_IF(expr,ch) ((expr) ? UTF16_SWAP((ch)) : (ch)) | |
| 312 | - | |
| 313 | -/* | |
| 314 | -** This function attempts to scan each logical line within the blob to | |
| 315 | -** determine the type of content it appears to contain. The return value | |
| 316 | -** is a combination of one or more of the LOOK_XXX flags (see above): | |
| 317 | -** | |
| 318 | -** !LOOK_BINARY -- The content appears to consist entirely of text; however, | |
| 319 | -** the encoding may not be UTF-16. | |
| 320 | -** | |
| 321 | -** LOOK_BINARY -- The content appears to be binary because it contains one | |
| 322 | -** or more embedded NUL characters or an extremely long line. | |
| 323 | -** Since this function does not understand UTF-8, it may | |
| 324 | -** falsely consider UTF-8 text to be binary. | |
| 325 | -** | |
| 326 | -** Additional flags (i.e. those other than the ones included in LOOK_BINARY) | |
| 327 | -** may be present in the result as well; however, they should not impact the | |
| 328 | -** determination of text versus binary content. | |
| 329 | -** | |
| 330 | -************************************ WARNING ********************************** | |
| 331 | -** | |
| 332 | -** This function does not validate that the blob content is properly formed | |
| 333 | -** UTF-16. It assumes that all code points are the same size. It does not | |
| 334 | -** validate any code points. It makes no attempt to detect if any [invalid] | |
| 335 | -** switches between the UTF-16be and UTF-16le encodings occur. | |
| 336 | -** | |
| 337 | -** The only code points that this function cares about are the NUL character, | |
| 338 | -** carriage-return, and line-feed. | |
| 339 | -** | |
| 340 | -** This function examines the contents of the blob until one of the flags | |
| 341 | -** specified in "stopFlags" is set. | |
| 342 | -** | |
| 343 | -************************************ WARNING ********************************** | |
| 344 | -*/ | |
| 345 | -int looks_like_utf16(const Blob *pContent, int bReverse, int stopFlags){ | |
| 346 | - const WCHAR_T *z = (WCHAR_T *)blob_buffer(pContent); | |
| 347 | - unsigned int n = blob_size(pContent); | |
| 348 | - int j, c, flags = LOOK_NONE; /* Assume UTF-16 text, prove otherwise */ | |
| 349 | - | |
| 350 | - if( n==0 ) return flags; /* Empty file -> text */ | |
| 351 | - if( n%sizeof(WCHAR_T) ){ | |
| 352 | - flags |= LOOK_ODD; /* Odd number of bytes -> binary (UTF-8?) */ | |
| 353 | - if( n<sizeof(WCHAR_T) ) return flags; /* One byte -> binary (UTF-8?) */ | |
| 354 | - } | |
| 355 | - c = *z; | |
| 356 | - if( bReverse ){ | |
| 357 | - c = UTF16_SWAP(c); | |
| 358 | - } | |
| 359 | - if( c==0 ){ | |
| 360 | - flags |= LOOK_NUL; /* NUL character in a file -> binary */ | |
| 361 | - }else if( c=='\r' ){ | |
| 362 | - flags |= LOOK_CR; | |
| 363 | - if( n<(2*sizeof(WCHAR_T)) || UTF16_SWAP_IF(bReverse, z[1])!='\n' ){ | |
| 364 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 365 | - } | |
| 366 | - } | |
| 367 | - j = (c!='\n'); | |
| 368 | - if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ | |
| 369 | - while( 1 ){ | |
| 370 | - int c2 = c; | |
| 371 | - if( flags&stopFlags ) break; | |
| 372 | - n -= sizeof(WCHAR_T); | |
| 373 | - if( n<sizeof(WCHAR_T) ) break; | |
| 374 | - c = *++z; | |
| 375 | - if( bReverse ){ | |
| 376 | - c = UTF16_SWAP(c); | |
| 377 | - } | |
| 378 | - ++j; | |
| 379 | - if( c==0 ){ | |
| 380 | - flags |= LOOK_NUL; /* NUL character in a file -> binary */ | |
| 381 | - }else if( c=='\n' ){ | |
| 382 | - flags |= LOOK_LF; | |
| 383 | - if( c2=='\r' ){ | |
| 384 | - flags |= (LOOK_CR | LOOK_CRLF); /* Found LF preceded by CR */ | |
| 385 | - }else{ | |
| 386 | - flags |= LOOK_LONE_LF; | |
| 387 | - } | |
| 388 | - if( j>UTF16_LENGTH_MASK ){ | |
| 389 | - flags |= LOOK_LONG; /* Very long line -> binary */ | |
| 390 | - } | |
| 391 | - j = 0; | |
| 392 | - }else if( c=='\r' ){ | |
| 393 | - flags |= LOOK_CR; | |
| 394 | - if( n<(2*sizeof(WCHAR_T)) || UTF16_SWAP_IF(bReverse, z[1])!='\n' ){ | |
| 395 | - flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ | |
| 396 | - } | |
| 397 | - } | |
| 398 | - } | |
| 399 | - if( n ){ | |
| 400 | - flags |= LOOK_SHORT; /* The whole blob was not examined */ | |
| 401 | - } | |
| 402 | - if( j>UTF16_LENGTH_MASK ){ | |
| 403 | - flags |= LOOK_LONG; /* Very long line -> binary */ | |
| 404 | - } | |
| 405 | - return flags; | |
| 406 | -} | |
| 407 | - | |
| 408 | -/* | |
| 409 | -** This function returns an array of bytes representing the byte-order-mark | |
| 410 | -** for UTF-8. | |
| 411 | -*/ | |
| 412 | -const unsigned char *get_utf8_bom(int *pnByte){ | |
| 413 | - static const unsigned char bom[] = { | |
| 414 | - 0xEF, 0xBB, 0xBF, 0x00, 0x00, 0x00 | |
| 415 | - }; | |
| 416 | - if( pnByte ) *pnByte = 3; | |
| 417 | - return bom; | |
| 418 | -} | |
| 419 | - | |
| 420 | -/* | |
| 421 | -** This function returns non-zero if the blob starts with a UTF-8 | |
| 422 | -** byte-order-mark (BOM). | |
| 423 | -*/ | |
| 424 | -int starts_with_utf8_bom(const Blob *pContent, int *pnByte){ | |
| 425 | - const char *z = blob_buffer(pContent); | |
| 426 | - int bomSize = 0; | |
| 427 | - const unsigned char *bom = get_utf8_bom(&bomSize); | |
| 428 | - | |
| 429 | - if( pnByte ) *pnByte = bomSize; | |
| 430 | - if( blob_size(pContent)<bomSize ) return 0; | |
| 431 | - return memcmp(z, bom, bomSize)==0; | |
| 432 | -} | |
| 433 | - | |
| 434 | -/* | |
| 435 | -** This function returns non-zero if the blob starts with a UTF-16 | |
| 436 | -** byte-order-mark (BOM), either in the endianness of the machine | |
| 437 | -** or in reversed byte order. The UTF-32 BOM is ruled out by checking | |
| 438 | -** if the UTF-16 BOM is not immediately followed by (utf16) 0. | |
| 439 | -** pnByte is only set when the function returns 1. | |
| 440 | -** | |
| 441 | -** pbReverse is always set, even when no BOM is found. Without a BOM, | |
| 442 | -** it is set to 1 on little-endian and 0 on big-endian platforms. See | |
| 443 | -** clause D98 of conformance (section 3.10) of the Unicode standard. | |
| 444 | -*/ | |
| 445 | -int starts_with_utf16_bom( | |
| 446 | - const Blob *pContent, /* IN: Blob content to perform BOM detection on. */ | |
| 447 | - int *pnByte, /* OUT: The number of bytes used for the BOM. */ | |
| 448 | - int *pbReverse /* OUT: Non-zero for BOM in reverse byte-order. */ | |
| 449 | -){ | |
| 450 | - const unsigned short *z = (unsigned short *)blob_buffer(pContent); | |
| 451 | - int bomSize = sizeof(unsigned short); | |
| 452 | - int size = blob_size(pContent); | |
| 453 | - | |
| 454 | - if( size<bomSize ) goto noBom; /* No: cannot read BOM. */ | |
| 455 | - if( size>=(2*bomSize) && z[1]==0 ) goto noBom; /* No: possible UTF-32. */ | |
| 456 | - if( z[0]==0xfeff ){ | |
| 457 | - if( pbReverse ) *pbReverse = 0; | |
| 458 | - }else if( z[0]==0xfffe ){ | |
| 459 | - if( pbReverse ) *pbReverse = 1; | |
| 460 | - }else{ | |
| 461 | - static const int one = 1; | |
| 462 | - noBom: | |
| 463 | - if( pbReverse ) *pbReverse = *(char *) &one; | |
| 464 | - return 0; /* No: UTF-16 byte-order-mark not found. */ | |
| 465 | - } | |
| 466 | - if( pnByte ) *pnByte = bomSize; | |
| 467 | - return 1; /* Yes. */ | |
| 468 | -} | |
| 469 | - | |
| 470 | -/* | |
| 471 | -** Returns non-zero if the specified content could be valid UTF-16. | |
| 472 | -*/ | |
| 473 | -int could_be_utf16(const Blob *pContent, int *pbReverse){ | |
| 474 | - return (blob_size(pContent) % sizeof(WCHAR_T) == 0) ? | |
| 475 | - starts_with_utf16_bom(pContent, 0, pbReverse) : 0; | |
| 476 | -} | |
| 477 | - | |
| 478 | 182 | /* |
| 479 | 183 | ** Return true if two DLine elements are identical. |
| 480 | 184 | */ |
| 481 | 185 | static int same_dline(DLine *pA, DLine *pB){ |
| 482 | 186 | return pA->h==pB->h && memcmp(pA->z,pB->z,pA->h & LENGTH_MASK)==0; |
| @@ -2653,60 +2357,5 @@ | ||
| 2653 | 2357 | zPrefix[0] = 0; |
| 2654 | 2358 | } |
| 2655 | 2359 | fossil_print("%21s %4d: %.*s\n", zPrefix, i+1, n, z); |
| 2656 | 2360 | } |
| 2657 | 2361 | } |
| 2658 | - | |
| 2659 | -/* | |
| 2660 | -** COMMAND: test-looks-like-utf | |
| 2661 | -** | |
| 2662 | -** Usage: %fossil test-looks-like-utf FILENAME | |
| 2663 | -** | |
| 2664 | -** Options: | |
| 2665 | -** --utf8 Ignoring BOM and file size, force UTF-8 checking | |
| 2666 | -** --utf16 Ignoring BOM and file size, force UTF-16 checking | |
| 2667 | -** | |
| 2668 | -** FILENAME is the name of a file to check for textual content in the UTF-8 | |
| 2669 | -** and/or UTF-16 encodings. | |
| 2670 | -*/ | |
| 2671 | -void looks_like_utf_test_cmd(void){ | |
| 2672 | - Blob blob; /* the contents of the specified file */ | |
| 2673 | - int fUtf8; /* return value of starts_with_utf8_bom() */ | |
| 2674 | - int fUtf16; /* return value of starts_with_utf16_bom() */ | |
| 2675 | - int fUnicode; /* return value of could_be_utf16() */ | |
| 2676 | - int lookFlags; /* output flags from looks_like_utf8/utf16() */ | |
| 2677 | - int bRevUtf16 = 0; /* non-zero -> UTF-16 byte order reversed */ | |
| 2678 | - int bRevUnicode = 0; /* non-zero -> UTF-16 byte order reversed */ | |
| 2679 | - int fForceUtf8 = find_option("utf8",0,0)!=0; | |
| 2680 | - int fForceUtf16 = find_option("utf16",0,0)!=0; | |
| 2681 | - if( g.argc!=3 ) usage("FILENAME"); | |
| 2682 | - blob_read_from_file(&blob, g.argv[2]); | |
| 2683 | - fUtf8 = starts_with_utf8_bom(&blob, 0); | |
| 2684 | - fUtf16 = starts_with_utf16_bom(&blob, 0, &bRevUtf16); | |
| 2685 | - if( fForceUtf8 ){ | |
| 2686 | - fUnicode = 0; | |
| 2687 | - }else{ | |
| 2688 | - fUnicode = could_be_utf16(&blob, &bRevUnicode) || fForceUtf16; | |
| 2689 | - } | |
| 2690 | - lookFlags = fUnicode ? looks_like_utf16(&blob, bRevUnicode, 0) : | |
| 2691 | - looks_like_utf8(&blob, 0); | |
| 2692 | - fossil_print("File \"%s\" has %d bytes.\n",g.argv[2],blob_size(&blob)); | |
| 2693 | - fossil_print("Starts with UTF-8 BOM: %s\n",fUtf8?"yes":"no"); | |
| 2694 | - fossil_print("Starts with UTF-16 BOM: %s\n", | |
| 2695 | - fUtf16?(bRevUtf16?"reversed":"yes"):"no"); | |
| 2696 | - fossil_print("Looks like UTF-%s: %s\n",fUnicode?"16":"8", | |
| 2697 | - (lookFlags&LOOK_BINARY)?"no":"yes"); | |
| 2698 | - fossil_print("Has flag LOOK_NUL: %s\n",(lookFlags&LOOK_NUL)?"yes":"no"); | |
| 2699 | - fossil_print("Has flag LOOK_CR: %s\n",(lookFlags&LOOK_CR)?"yes":"no"); | |
| 2700 | - fossil_print("Has flag LOOK_LONE_CR: %s\n", | |
| 2701 | - (lookFlags&LOOK_LONE_CR)?"yes":"no"); | |
| 2702 | - fossil_print("Has flag LOOK_LF: %s\n",(lookFlags&LOOK_LF)?"yes":"no"); | |
| 2703 | - fossil_print("Has flag LOOK_LONE_LF: %s\n", | |
| 2704 | - (lookFlags&LOOK_LONE_LF)?"yes":"no"); | |
| 2705 | - fossil_print("Has flag LOOK_CRLF: %s\n",(lookFlags&LOOK_CRLF)?"yes":"no"); | |
| 2706 | - fossil_print("Has flag LOOK_LONG: %s\n",(lookFlags&LOOK_LONG)?"yes":"no"); | |
| 2707 | - fossil_print("Has flag LOOK_INVALID: %s\n", | |
| 2708 | - (lookFlags&LOOK_INVALID)?"yes":"no"); | |
| 2709 | - fossil_print("Has flag LOOK_ODD: %s\n",(lookFlags&LOOK_ODD)?"yes":"no"); | |
| 2710 | - fossil_print("Has flag LOOK_SHORT: %s\n",(lookFlags&LOOK_SHORT)?"yes":"no"); | |
| 2711 | - blob_reset(&blob); | |
| 2712 | -} | |
| 2713 | 2362 | |
| 2714 | 2363 | ADDED src/lookslike.c |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -54,41 +54,17 @@ | |
| 54 | "cannot compute difference between symlink and regular file\n" |
| 55 | |
| 56 | #define DIFF_TOO_MANY_CHANGES \ |
| 57 | "more than 10,000 changes\n" |
| 58 | |
| 59 | /* |
| 60 | ** This macro is designed to return non-zero if the specified blob contains |
| 61 | ** data that MAY be binary in nature; otherwise, zero will be returned. |
| 62 | */ |
| 63 | #define looks_like_binary(blob) \ |
| 64 | ((looks_like_utf8((blob), LOOK_BINARY) & LOOK_BINARY) != LOOK_NONE) |
| 65 | |
| 66 | /* |
| 67 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 68 | ** to convey status information about the blob content. |
| 69 | */ |
| 70 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 71 | #define LOOK_NUL ((int)0x00000001) /* One or more NUL chars were found. */ |
| 72 | #define LOOK_CR ((int)0x00000002) /* One or more CR chars were found. */ |
| 73 | #define LOOK_LONE_CR ((int)0x00000004) /* An unpaired CR char was found. */ |
| 74 | #define LOOK_LF ((int)0x00000008) /* One or more LF chars were found. */ |
| 75 | #define LOOK_LONE_LF ((int)0x00000010) /* An unpaired LF char was found. */ |
| 76 | #define LOOK_CRLF ((int)0x00000020) /* One or more CR/LF pairs were found. */ |
| 77 | #define LOOK_LONG ((int)0x00000040) /* An over length line was found. */ |
| 78 | #define LOOK_ODD ((int)0x00000080) /* An odd number of bytes was found. */ |
| 79 | #define LOOK_SHORT ((int)0x00000100) /* Unable to perform full check. */ |
| 80 | #define LOOK_INVALID ((int)0x00000200) /* Invalid sequence was found. */ |
| 81 | #define LOOK_BINARY (LOOK_NUL | LOOK_LONG | LOOK_SHORT) /* May be binary. */ |
| 82 | #define LOOK_EOL (LOOK_LONE_CR | LOOK_LONE_LF | LOOK_CRLF) /* Line seps. */ |
| 83 | #endif /* INTERFACE */ |
| 84 | |
| 85 | /* |
| 86 | ** Maximum length of a line in a text file, in bytes. (2**13 = 8192 bytes) |
| 87 | */ |
| 88 | #define LENGTH_MASK_SZ 13 |
| 89 | #define LENGTH_MASK ((1<<LENGTH_MASK_SZ)-1) |
| 90 | |
| 91 | /* |
| 92 | ** Information about each line of a file being diffed. |
| 93 | ** |
| 94 | ** The lower LENGTH_MASK_SZ bits of the hash (DLine.h) are the length |
| @@ -201,282 +177,10 @@ | |
| 201 | /* Return results */ |
| 202 | *pnLine = nLine; |
| 203 | return a; |
| 204 | } |
| 205 | |
| 206 | /* |
| 207 | ** This function attempts to scan each logical line within the blob to |
| 208 | ** determine the type of content it appears to contain. The return value |
| 209 | ** is a combination of one or more of the LOOK_XXX flags (see above): |
| 210 | ** |
| 211 | ** !LOOK_BINARY -- The content appears to consist entirely of text; however, |
| 212 | ** the encoding may not be UTF-8. |
| 213 | ** |
| 214 | ** LOOK_BINARY -- The content appears to be binary because it contains one |
| 215 | ** or more embedded NUL characters or an extremely long line. |
| 216 | ** Since this function does not understand UTF-16, it may |
| 217 | ** falsely consider UTF-16 text to be binary. |
| 218 | ** |
| 219 | ** Additional flags (i.e. those other than the ones included in LOOK_BINARY) |
| 220 | ** may be present in the result as well; however, they should not impact the |
| 221 | ** determination of text versus binary content. |
| 222 | ** |
| 223 | ************************************ WARNING ********************************** |
| 224 | ** |
| 225 | ** This function does not validate that the blob content is properly formed |
| 226 | ** UTF-8. It assumes that all code points are the same size. It does not |
| 227 | ** validate any code points. It makes no attempt to detect if any [invalid] |
| 228 | ** switches between UTF-8 and other encodings occur. |
| 229 | ** |
| 230 | ** The only code points that this function cares about are the NUL character, |
| 231 | ** carriage-return, and line-feed. |
| 232 | ** |
| 233 | ** This function examines the contents of the blob until one of the flags |
| 234 | ** specified in "stopFlags" is set. |
| 235 | ** |
| 236 | ************************************ WARNING ********************************** |
| 237 | */ |
| 238 | int looks_like_utf8(const Blob *pContent, int stopFlags){ |
| 239 | const char *z = blob_buffer(pContent); |
| 240 | unsigned int n = blob_size(pContent); |
| 241 | int j, c, flags = LOOK_NONE; /* Assume UTF-8 text, prove otherwise */ |
| 242 | |
| 243 | if( n==0 ) return flags; /* Empty file -> text */ |
| 244 | c = *z; |
| 245 | if( c==0 ){ |
| 246 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 247 | }else if( c=='\r' ){ |
| 248 | flags |= LOOK_CR; |
| 249 | if( n<=1 || z[1]!='\n' ){ |
| 250 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 251 | } |
| 252 | } |
| 253 | j = (c!='\n'); |
| 254 | if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ |
| 255 | while( !(flags&stopFlags) && --n>0 ){ |
| 256 | int c2 = c; |
| 257 | c = *++z; ++j; |
| 258 | if( c==0 ){ |
| 259 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 260 | }else if( c=='\n' ){ |
| 261 | flags |= LOOK_LF; |
| 262 | if( c2=='\r' ){ |
| 263 | flags |= (LOOK_CR | LOOK_CRLF); /* Found LF preceded by CR */ |
| 264 | }else{ |
| 265 | flags |= LOOK_LONE_LF; |
| 266 | } |
| 267 | if( j>LENGTH_MASK ){ |
| 268 | flags |= LOOK_LONG; /* Very long line -> binary */ |
| 269 | } |
| 270 | j = 0; |
| 271 | }else if( c=='\r' ){ |
| 272 | flags |= LOOK_CR; |
| 273 | if( n<=1 || z[1]!='\n' ){ |
| 274 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 275 | } |
| 276 | } |
| 277 | } |
| 278 | if( n ){ |
| 279 | flags |= LOOK_SHORT; /* The whole blob was not examined */ |
| 280 | } |
| 281 | if( j>LENGTH_MASK ){ |
| 282 | flags |= LOOK_LONG; /* Very long line -> binary */ |
| 283 | } |
| 284 | return flags; |
| 285 | } |
| 286 | |
| 287 | /* |
| 288 | ** Define the type needed to represent a Unicode (UTF-16) character. |
| 289 | */ |
| 290 | #ifndef WCHAR_T |
| 291 | # ifdef _WIN32 |
| 292 | # define WCHAR_T wchar_t |
| 293 | # else |
| 294 | # define WCHAR_T unsigned short |
| 295 | # endif |
| 296 | #endif |
| 297 | |
| 298 | /* |
| 299 | ** Maximum length of a line in a text file, in UTF-16 characters. (4096) |
| 300 | ** The number of bytes represented by this value cannot exceed LENGTH_MASK |
| 301 | ** bytes, because that is the line buffer size used by the diff engine. |
| 302 | */ |
| 303 | #define UTF16_LENGTH_MASK_SZ (LENGTH_MASK_SZ-(sizeof(WCHAR_T)-sizeof(char))) |
| 304 | #define UTF16_LENGTH_MASK ((1<<UTF16_LENGTH_MASK_SZ)-1) |
| 305 | |
| 306 | /* |
| 307 | ** This macro is used to swap the byte order of a UTF-16 character in the |
| 308 | ** looks_like_utf16() function. |
| 309 | */ |
| 310 | #define UTF16_SWAP(ch) ((((ch) << 8) & 0xFF00) | (((ch) >> 8) & 0xFF)) |
| 311 | #define UTF16_SWAP_IF(expr,ch) ((expr) ? UTF16_SWAP((ch)) : (ch)) |
| 312 | |
| 313 | /* |
| 314 | ** This function attempts to scan each logical line within the blob to |
| 315 | ** determine the type of content it appears to contain. The return value |
| 316 | ** is a combination of one or more of the LOOK_XXX flags (see above): |
| 317 | ** |
| 318 | ** !LOOK_BINARY -- The content appears to consist entirely of text; however, |
| 319 | ** the encoding may not be UTF-16. |
| 320 | ** |
| 321 | ** LOOK_BINARY -- The content appears to be binary because it contains one |
| 322 | ** or more embedded NUL characters or an extremely long line. |
| 323 | ** Since this function does not understand UTF-8, it may |
| 324 | ** falsely consider UTF-8 text to be binary. |
| 325 | ** |
| 326 | ** Additional flags (i.e. those other than the ones included in LOOK_BINARY) |
| 327 | ** may be present in the result as well; however, they should not impact the |
| 328 | ** determination of text versus binary content. |
| 329 | ** |
| 330 | ************************************ WARNING ********************************** |
| 331 | ** |
| 332 | ** This function does not validate that the blob content is properly formed |
| 333 | ** UTF-16. It assumes that all code points are the same size. It does not |
| 334 | ** validate any code points. It makes no attempt to detect if any [invalid] |
| 335 | ** switches between the UTF-16be and UTF-16le encodings occur. |
| 336 | ** |
| 337 | ** The only code points that this function cares about are the NUL character, |
| 338 | ** carriage-return, and line-feed. |
| 339 | ** |
| 340 | ** This function examines the contents of the blob until one of the flags |
| 341 | ** specified in "stopFlags" is set. |
| 342 | ** |
| 343 | ************************************ WARNING ********************************** |
| 344 | */ |
| 345 | int looks_like_utf16(const Blob *pContent, int bReverse, int stopFlags){ |
| 346 | const WCHAR_T *z = (WCHAR_T *)blob_buffer(pContent); |
| 347 | unsigned int n = blob_size(pContent); |
| 348 | int j, c, flags = LOOK_NONE; /* Assume UTF-16 text, prove otherwise */ |
| 349 | |
| 350 | if( n==0 ) return flags; /* Empty file -> text */ |
| 351 | if( n%sizeof(WCHAR_T) ){ |
| 352 | flags |= LOOK_ODD; /* Odd number of bytes -> binary (UTF-8?) */ |
| 353 | if( n<sizeof(WCHAR_T) ) return flags; /* One byte -> binary (UTF-8?) */ |
| 354 | } |
| 355 | c = *z; |
| 356 | if( bReverse ){ |
| 357 | c = UTF16_SWAP(c); |
| 358 | } |
| 359 | if( c==0 ){ |
| 360 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 361 | }else if( c=='\r' ){ |
| 362 | flags |= LOOK_CR; |
| 363 | if( n<(2*sizeof(WCHAR_T)) || UTF16_SWAP_IF(bReverse, z[1])!='\n' ){ |
| 364 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 365 | } |
| 366 | } |
| 367 | j = (c!='\n'); |
| 368 | if( !j ) flags |= (LOOK_LF | LOOK_LONE_LF); /* Found LF as first char */ |
| 369 | while( 1 ){ |
| 370 | int c2 = c; |
| 371 | if( flags&stopFlags ) break; |
| 372 | n -= sizeof(WCHAR_T); |
| 373 | if( n<sizeof(WCHAR_T) ) break; |
| 374 | c = *++z; |
| 375 | if( bReverse ){ |
| 376 | c = UTF16_SWAP(c); |
| 377 | } |
| 378 | ++j; |
| 379 | if( c==0 ){ |
| 380 | flags |= LOOK_NUL; /* NUL character in a file -> binary */ |
| 381 | }else if( c=='\n' ){ |
| 382 | flags |= LOOK_LF; |
| 383 | if( c2=='\r' ){ |
| 384 | flags |= (LOOK_CR | LOOK_CRLF); /* Found LF preceded by CR */ |
| 385 | }else{ |
| 386 | flags |= LOOK_LONE_LF; |
| 387 | } |
| 388 | if( j>UTF16_LENGTH_MASK ){ |
| 389 | flags |= LOOK_LONG; /* Very long line -> binary */ |
| 390 | } |
| 391 | j = 0; |
| 392 | }else if( c=='\r' ){ |
| 393 | flags |= LOOK_CR; |
| 394 | if( n<(2*sizeof(WCHAR_T)) || UTF16_SWAP_IF(bReverse, z[1])!='\n' ){ |
| 395 | flags |= LOOK_LONE_CR; /* More chars, next char is not LF */ |
| 396 | } |
| 397 | } |
| 398 | } |
| 399 | if( n ){ |
| 400 | flags |= LOOK_SHORT; /* The whole blob was not examined */ |
| 401 | } |
| 402 | if( j>UTF16_LENGTH_MASK ){ |
| 403 | flags |= LOOK_LONG; /* Very long line -> binary */ |
| 404 | } |
| 405 | return flags; |
| 406 | } |
| 407 | |
| 408 | /* |
| 409 | ** This function returns an array of bytes representing the byte-order-mark |
| 410 | ** for UTF-8. |
| 411 | */ |
| 412 | const unsigned char *get_utf8_bom(int *pnByte){ |
| 413 | static const unsigned char bom[] = { |
| 414 | 0xEF, 0xBB, 0xBF, 0x00, 0x00, 0x00 |
| 415 | }; |
| 416 | if( pnByte ) *pnByte = 3; |
| 417 | return bom; |
| 418 | } |
| 419 | |
| 420 | /* |
| 421 | ** This function returns non-zero if the blob starts with a UTF-8 |
| 422 | ** byte-order-mark (BOM). |
| 423 | */ |
| 424 | int starts_with_utf8_bom(const Blob *pContent, int *pnByte){ |
| 425 | const char *z = blob_buffer(pContent); |
| 426 | int bomSize = 0; |
| 427 | const unsigned char *bom = get_utf8_bom(&bomSize); |
| 428 | |
| 429 | if( pnByte ) *pnByte = bomSize; |
| 430 | if( blob_size(pContent)<bomSize ) return 0; |
| 431 | return memcmp(z, bom, bomSize)==0; |
| 432 | } |
| 433 | |
| 434 | /* |
| 435 | ** This function returns non-zero if the blob starts with a UTF-16 |
| 436 | ** byte-order-mark (BOM), either in the endianness of the machine |
| 437 | ** or in reversed byte order. The UTF-32 BOM is ruled out by checking |
| 438 | ** if the UTF-16 BOM is not immediately followed by (utf16) 0. |
| 439 | ** pnByte is only set when the function returns 1. |
| 440 | ** |
| 441 | ** pbReverse is always set, even when no BOM is found. Without a BOM, |
| 442 | ** it is set to 1 on little-endian and 0 on big-endian platforms. See |
| 443 | ** clause D98 of conformance (section 3.10) of the Unicode standard. |
| 444 | */ |
| 445 | int starts_with_utf16_bom( |
| 446 | const Blob *pContent, /* IN: Blob content to perform BOM detection on. */ |
| 447 | int *pnByte, /* OUT: The number of bytes used for the BOM. */ |
| 448 | int *pbReverse /* OUT: Non-zero for BOM in reverse byte-order. */ |
| 449 | ){ |
| 450 | const unsigned short *z = (unsigned short *)blob_buffer(pContent); |
| 451 | int bomSize = sizeof(unsigned short); |
| 452 | int size = blob_size(pContent); |
| 453 | |
| 454 | if( size<bomSize ) goto noBom; /* No: cannot read BOM. */ |
| 455 | if( size>=(2*bomSize) && z[1]==0 ) goto noBom; /* No: possible UTF-32. */ |
| 456 | if( z[0]==0xfeff ){ |
| 457 | if( pbReverse ) *pbReverse = 0; |
| 458 | }else if( z[0]==0xfffe ){ |
| 459 | if( pbReverse ) *pbReverse = 1; |
| 460 | }else{ |
| 461 | static const int one = 1; |
| 462 | noBom: |
| 463 | if( pbReverse ) *pbReverse = *(char *) &one; |
| 464 | return 0; /* No: UTF-16 byte-order-mark not found. */ |
| 465 | } |
| 466 | if( pnByte ) *pnByte = bomSize; |
| 467 | return 1; /* Yes. */ |
| 468 | } |
| 469 | |
| 470 | /* |
| 471 | ** Returns non-zero if the specified content could be valid UTF-16. |
| 472 | */ |
| 473 | int could_be_utf16(const Blob *pContent, int *pbReverse){ |
| 474 | return (blob_size(pContent) % sizeof(WCHAR_T) == 0) ? |
| 475 | starts_with_utf16_bom(pContent, 0, pbReverse) : 0; |
| 476 | } |
| 477 | |
| 478 | /* |
| 479 | ** Return true if two DLine elements are identical. |
| 480 | */ |
| 481 | static int same_dline(DLine *pA, DLine *pB){ |
| 482 | return pA->h==pB->h && memcmp(pA->z,pB->z,pA->h & LENGTH_MASK)==0; |
| @@ -2653,60 +2357,5 @@ | |
| 2653 | zPrefix[0] = 0; |
| 2654 | } |
| 2655 | fossil_print("%21s %4d: %.*s\n", zPrefix, i+1, n, z); |
| 2656 | } |
| 2657 | } |
| 2658 | |
| 2659 | /* |
| 2660 | ** COMMAND: test-looks-like-utf |
| 2661 | ** |
| 2662 | ** Usage: %fossil test-looks-like-utf FILENAME |
| 2663 | ** |
| 2664 | ** Options: |
| 2665 | ** --utf8 Ignoring BOM and file size, force UTF-8 checking |
| 2666 | ** --utf16 Ignoring BOM and file size, force UTF-16 checking |
| 2667 | ** |
| 2668 | ** FILENAME is the name of a file to check for textual content in the UTF-8 |
| 2669 | ** and/or UTF-16 encodings. |
| 2670 | */ |
| 2671 | void looks_like_utf_test_cmd(void){ |
| 2672 | Blob blob; /* the contents of the specified file */ |
| 2673 | int fUtf8; /* return value of starts_with_utf8_bom() */ |
| 2674 | int fUtf16; /* return value of starts_with_utf16_bom() */ |
| 2675 | int fUnicode; /* return value of could_be_utf16() */ |
| 2676 | int lookFlags; /* output flags from looks_like_utf8/utf16() */ |
| 2677 | int bRevUtf16 = 0; /* non-zero -> UTF-16 byte order reversed */ |
| 2678 | int bRevUnicode = 0; /* non-zero -> UTF-16 byte order reversed */ |
| 2679 | int fForceUtf8 = find_option("utf8",0,0)!=0; |
| 2680 | int fForceUtf16 = find_option("utf16",0,0)!=0; |
| 2681 | if( g.argc!=3 ) usage("FILENAME"); |
| 2682 | blob_read_from_file(&blob, g.argv[2]); |
| 2683 | fUtf8 = starts_with_utf8_bom(&blob, 0); |
| 2684 | fUtf16 = starts_with_utf16_bom(&blob, 0, &bRevUtf16); |
| 2685 | if( fForceUtf8 ){ |
| 2686 | fUnicode = 0; |
| 2687 | }else{ |
| 2688 | fUnicode = could_be_utf16(&blob, &bRevUnicode) || fForceUtf16; |
| 2689 | } |
| 2690 | lookFlags = fUnicode ? looks_like_utf16(&blob, bRevUnicode, 0) : |
| 2691 | looks_like_utf8(&blob, 0); |
| 2692 | fossil_print("File \"%s\" has %d bytes.\n",g.argv[2],blob_size(&blob)); |
| 2693 | fossil_print("Starts with UTF-8 BOM: %s\n",fUtf8?"yes":"no"); |
| 2694 | fossil_print("Starts with UTF-16 BOM: %s\n", |
| 2695 | fUtf16?(bRevUtf16?"reversed":"yes"):"no"); |
| 2696 | fossil_print("Looks like UTF-%s: %s\n",fUnicode?"16":"8", |
| 2697 | (lookFlags&LOOK_BINARY)?"no":"yes"); |
| 2698 | fossil_print("Has flag LOOK_NUL: %s\n",(lookFlags&LOOK_NUL)?"yes":"no"); |
| 2699 | fossil_print("Has flag LOOK_CR: %s\n",(lookFlags&LOOK_CR)?"yes":"no"); |
| 2700 | fossil_print("Has flag LOOK_LONE_CR: %s\n", |
| 2701 | (lookFlags&LOOK_LONE_CR)?"yes":"no"); |
| 2702 | fossil_print("Has flag LOOK_LF: %s\n",(lookFlags&LOOK_LF)?"yes":"no"); |
| 2703 | fossil_print("Has flag LOOK_LONE_LF: %s\n", |
| 2704 | (lookFlags&LOOK_LONE_LF)?"yes":"no"); |
| 2705 | fossil_print("Has flag LOOK_CRLF: %s\n",(lookFlags&LOOK_CRLF)?"yes":"no"); |
| 2706 | fossil_print("Has flag LOOK_LONG: %s\n",(lookFlags&LOOK_LONG)?"yes":"no"); |
| 2707 | fossil_print("Has flag LOOK_INVALID: %s\n", |
| 2708 | (lookFlags&LOOK_INVALID)?"yes":"no"); |
| 2709 | fossil_print("Has flag LOOK_ODD: %s\n",(lookFlags&LOOK_ODD)?"yes":"no"); |
| 2710 | fossil_print("Has flag LOOK_SHORT: %s\n",(lookFlags&LOOK_SHORT)?"yes":"no"); |
| 2711 | blob_reset(&blob); |
| 2712 | } |
| 2713 | |
| 2714 | DDED src/lookslike.c |
| --- src/diff.c | |
| +++ src/diff.c | |
| @@ -54,41 +54,17 @@ | |
| 54 | "cannot compute difference between symlink and regular file\n" |
| 55 | |
| 56 | #define DIFF_TOO_MANY_CHANGES \ |
| 57 | "more than 10,000 changes\n" |
| 58 | |
| 59 | /* |
| 60 | ** Maximum length of a line in a text file, in bytes. (2**13 = 8192 bytes) |
| 61 | */ |
| 62 | #define LENGTH_MASK_SZ 13 |
| 63 | #define LENGTH_MASK ((1<<LENGTH_MASK_SZ)-1) |
| 64 | |
| 65 | #endif /* INTERFACE */ |
| 66 | |
| 67 | /* |
| 68 | ** Information about each line of a file being diffed. |
| 69 | ** |
| 70 | ** The lower LENGTH_MASK_SZ bits of the hash (DLine.h) are the length |
| @@ -201,282 +177,10 @@ | |
| 177 | /* Return results */ |
| 178 | *pnLine = nLine; |
| 179 | return a; |
| 180 | } |
| 181 | |
| 182 | /* |
| 183 | ** Return true if two DLine elements are identical. |
| 184 | */ |
| 185 | static int same_dline(DLine *pA, DLine *pB){ |
| 186 | return pA->h==pB->h && memcmp(pA->z,pB->z,pA->h & LENGTH_MASK)==0; |
| @@ -2653,60 +2357,5 @@ | |
| 2357 | zPrefix[0] = 0; |
| 2358 | } |
| 2359 | fossil_print("%21s %4d: %.*s\n", zPrefix, i+1, n, z); |
| 2360 | } |
| 2361 | } |
| 2362 | |
| 2363 | DDED src/lookslike.c |
+119
| --- a/src/lookslike.c | ||
| +++ b/src/lookslike.c | ||
| @@ -0,0 +1,119 @@ | ||
| 1 | +utf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 2 | + | |
| 3 | +/* | |
| 4 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 5 | +** to convey status information about the blob content. | |
| 6 | +*/ | |
| 7 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 8 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a | |
| 9 | +** high-level check, not intended to be used for any application-level | |
| 10 | +** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 11 | + | |
| 12 | +/* | |
| 13 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 14 | +** to convey status information about the blob content. | |
| 15 | +*/ | |
| 16 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 17 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), LRY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 18 | + | |
| 19 | +/* | |
| 20 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 21 | +** to convey status information about the blob content. | |
| 22 | +*/ | |
| 23 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 24 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lmight_be_sql(cCR tatus i10ormation a02LOOK_BINARY, 0) & LOOK_BI were LOOK_NUL ((int)0x00LONE_CR 20d ") || L(" or ") | |
| 25 | + /* ^^^^^ F tatus i10ormation a08/* One or more Nfossil_is were LOOK_NUL ((int)0x00LONE_LF ((int)0x00000010 ") | |
| 26 | + /* ^^^^^ no=08ere LOOK_NUL ((/LF paiLF ((int)0x00000010") || L20F ((int)0x00000010") || L("updaten 0; | |
| 27 | +#define L(GLOB1" andf8() an88((blob), LOO4f8() and looks_like_utf16() routines used | |
| 28 | +** to 2onvey status i10ormation a8efine LOOK_NONE ((in04#define LOOK_NONE ((int)0x0000000020/* Nothing sp10ial was found. */ | |
| 29 | +#08fine LOOK_NUL ((int)0x00000001) /* One or more N20ssil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only aited context((blob), LOOK_BINARY, 0)define LOOK_CR [i+n]!=0&&SQL. This is onlCRLFere LOOK_ne or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only aited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 30 | + | |
| 31 | +/* | |
| 32 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 33 | +** to convey status information about the blob content. | |
| 34 | +*/ | |
| 35 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 36 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), LRY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 37 | + | |
| 38 | +/* | |
| 39 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 40 | +** to convey status information about the blob content. | |
| 41 | +*/ | |
| 42 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 43 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lmight_be_sql(const char *zTxt){ | |
| 44 | + if( zTxt==0 || zTxt[0]==0 ) return 0; | |
| 45 | +#define L(GLOB) 0==sqlite3_strlike("%" GLOB "%",zTxt, '%') | |
| 46 | + return L(";") || L("'") | |
| 47 | + || L("select") || L("order") || L("drop") | |
| 48 | + || L(" and ") || L(" or ") | |
| 49 | + /* ^^^^^ noting that \n and \t should also be checked */ | |
| 50 | + || L("null") || L("delete") || L("update") | |
| 51 | + |;<num> Repeatest_looks_like_utflooks_like_utf_testshort *z = (unsigned short1]==0possible UTF-32. */ | |
| 52 | + if( z[0]z[0]==0xfffeutf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 53 | + | |
| 54 | +/* | |
| 55 | +** Output flflags |= LOOK_CR; | |
| 56 | +F | flags |= LOOK_LF; | flags |= LOOK_CR;flags |= LOOK_CR; | |
| 57 | +F | flags |= LOOK_LF; | flags |= LOOK_CR;f8() and looks_like_utf16() roututf8((blob), LOOKf8() and looks_like_utf16() routines used | |
| 58 | +** to convey status information about the blob content. | |
| 59 | +*/ | |
| 60 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 61 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blobflags |= LOOK_CR;(blob), Lz[i+n]!=0&&SQL. This is only a | |
| 62 | +** high-level check, not intended to be used for any application-level | |
| 63 | +** logic other tMore chars, next char is--n>0() and flags |= LOOK_LF; | * to convey status informatiBF LOOK_BINARY) != nformationBF LOOK_BINARY) != LOO((int)0x00000000) /* NothingBF LOOK_BINARY) != int)0x0000BF LOOK_BINARY) != LOOK ((int)0x00000001) /* One BF LOOK_BINARY) != ),flags |= LOOK_CR; | |
| 64 | + K_CR CRLFurn 0; | |
| 65 | +#define L(GLOB) 0=LF (rop") | |
| 66 | + || L(" andf8() an88((blob), LOOKf8() and looks_like_utf16() routines used | |
| 67 | +** to convey status i10ormation about the blob content. | |
| 68 | +*/ | |
| 69 | +#define LOOK_NONE ((int)0x0000000020More chars, next char is0/* Nothing special was found. */ | |
| 70 | +#define LOOK_NUL , c2; | |
| 71 | + if( c2>=0xC0 ){ | |
| 72 | + *def = &lb_tab[(2*c2)-0x180]; | |
| 73 | + if( c2>=0xe80 ){ | |
| 74 | + if( ((c2<0xc2) || (c2>=0xf4) || ((c&0xc0)!=0x80)) && | |
| 75 | + (((c2!=0xf4) || (c>=0x90)) &c = (c2 >= 0xe0) ? (c2<<1)+1 : ' '|flags |= LOOK_CR; | |
| 76 | + intended to be used for any application-level | |
| 77 | +** logic other than in defense against spiders F | flags |= LOOK_LF; | * to convey status informat** to convey status information about the blob content. | |
| 78 | +*/ | |
| 79 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 80 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a | |
| 81 | +** high-level check, not intended to be used for any application-level | |
| 82 | +** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 83 | + | |
| 84 | +/* | |
| 85 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 86 | +** to convey status information about the blob content. | |
| 87 | +*/ | |
| 88 | +#define LOOK_NONE ((int)0((blob), LOOK_BINARY, 0) & LO{ | |
| 89 | + *def || (c> ){ | |
| 90 | + return 1 }c>=0x8tf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 91 | + | |
| 92 | +/* | |
| 93 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 94 | +** to convey status information about the blob content. | |
| 95 | +*/ | |
| 96 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 97 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a | |
| 98 | +** high-level check, not intended to be used for any application-level | |
| 99 | +** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 100 | + | |
| 101 | +/* | |
| 102 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 103 | +** to convey status information about the blob content. | |
| 104 | +*/ | |
| 105 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 106 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOKY, 0) & LOOK_BINARY) }utf8((blob), LOOKK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) | |
| 107 | + | |
| 108 | +/* | |
| 109 | +** Output flags for the looks_like_utf8() and looks_like_utf16() routines used | |
| 110 | +** to convey status information about the blob content. | |
| 111 | +*/ | |
| 112 | +#define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ | |
| 113 | +#define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is o1if( flags&stopFlags ) break; | |
| 114 | + n -= sizeof(WCHAR_T); | |
| 115 | + if( n< break/*bRevUnicodefUtf16((int)0x00000000) utf8((blob), LOOK_BINARY, 0) & LfUnicode = 0; | |
| 116 | + }else{ | |
| 117 | +&bRevUnicode) || fForceUtEF, 0xBB, 0xBFlookFlags = fUnicode ? : | |
| 118 | +und. */ | |
| 119 | +#define |
| --- a/src/lookslike.c | |
| +++ b/src/lookslike.c | |
| @@ -0,0 +1,119 @@ | |
| --- a/src/lookslike.c | |
| +++ b/src/lookslike.c | |
| @@ -0,0 +1,119 @@ | |
| 1 | utf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 2 | |
| 3 | /* |
| 4 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 5 | ** to convey status information about the blob content. |
| 6 | */ |
| 7 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 8 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a |
| 9 | ** high-level check, not intended to be used for any application-level |
| 10 | ** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 11 | |
| 12 | /* |
| 13 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 14 | ** to convey status information about the blob content. |
| 15 | */ |
| 16 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 17 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), LRY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 18 | |
| 19 | /* |
| 20 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 21 | ** to convey status information about the blob content. |
| 22 | */ |
| 23 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 24 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lmight_be_sql(cCR tatus i10ormation a02LOOK_BINARY, 0) & LOOK_BI were LOOK_NUL ((int)0x00LONE_CR 20d ") || L(" or ") |
| 25 | /* ^^^^^ F tatus i10ormation a08/* One or more Nfossil_is were LOOK_NUL ((int)0x00LONE_LF ((int)0x00000010 ") |
| 26 | /* ^^^^^ no=08ere LOOK_NUL ((/LF paiLF ((int)0x00000010") || L20F ((int)0x00000010") || L("updaten 0; |
| 27 | #define L(GLOB1" andf8() an88((blob), LOO4f8() and looks_like_utf16() routines used |
| 28 | ** to 2onvey status i10ormation a8efine LOOK_NONE ((in04#define LOOK_NONE ((int)0x0000000020/* Nothing sp10ial was found. */ |
| 29 | #08fine LOOK_NUL ((int)0x00000001) /* One or more N20ssil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only aited context((blob), LOOK_BINARY, 0)define LOOK_CR [i+n]!=0&&SQL. This is onlCRLFere LOOK_ne or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only aited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 30 | |
| 31 | /* |
| 32 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 33 | ** to convey status information about the blob content. |
| 34 | */ |
| 35 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 36 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), LRY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 37 | |
| 38 | /* |
| 39 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 40 | ** to convey status information about the blob content. |
| 41 | */ |
| 42 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 43 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lmight_be_sql(const char *zTxt){ |
| 44 | if( zTxt==0 || zTxt[0]==0 ) return 0; |
| 45 | #define L(GLOB) 0==sqlite3_strlike("%" GLOB "%",zTxt, '%') |
| 46 | return L(";") || L("'") |
| 47 | || L("select") || L("order") || L("drop") |
| 48 | || L(" and ") || L(" or ") |
| 49 | /* ^^^^^ noting that \n and \t should also be checked */ |
| 50 | || L("null") || L("delete") || L("update") |
| 51 | |;<num> Repeatest_looks_like_utflooks_like_utf_testshort *z = (unsigned short1]==0possible UTF-32. */ |
| 52 | if( z[0]z[0]==0xfffeutf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 53 | |
| 54 | /* |
| 55 | ** Output flflags |= LOOK_CR; |
| 56 | F | flags |= LOOK_LF; | flags |= LOOK_CR;flags |= LOOK_CR; |
| 57 | F | flags |= LOOK_LF; | flags |= LOOK_CR;f8() and looks_like_utf16() roututf8((blob), LOOKf8() and looks_like_utf16() routines used |
| 58 | ** to convey status information about the blob content. |
| 59 | */ |
| 60 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 61 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blobflags |= LOOK_CR;(blob), Lz[i+n]!=0&&SQL. This is only a |
| 62 | ** high-level check, not intended to be used for any application-level |
| 63 | ** logic other tMore chars, next char is--n>0() and flags |= LOOK_LF; | * to convey status informatiBF LOOK_BINARY) != nformationBF LOOK_BINARY) != LOO((int)0x00000000) /* NothingBF LOOK_BINARY) != int)0x0000BF LOOK_BINARY) != LOOK ((int)0x00000001) /* One BF LOOK_BINARY) != ),flags |= LOOK_CR; |
| 64 | K_CR CRLFurn 0; |
| 65 | #define L(GLOB) 0=LF (rop") |
| 66 | || L(" andf8() an88((blob), LOOKf8() and looks_like_utf16() routines used |
| 67 | ** to convey status i10ormation about the blob content. |
| 68 | */ |
| 69 | #define LOOK_NONE ((int)0x0000000020More chars, next char is0/* Nothing special was found. */ |
| 70 | #define LOOK_NUL , c2; |
| 71 | if( c2>=0xC0 ){ |
| 72 | *def = &lb_tab[(2*c2)-0x180]; |
| 73 | if( c2>=0xe80 ){ |
| 74 | if( ((c2<0xc2) || (c2>=0xf4) || ((c&0xc0)!=0x80)) && |
| 75 | (((c2!=0xf4) || (c>=0x90)) &c = (c2 >= 0xe0) ? (c2<<1)+1 : ' '|flags |= LOOK_CR; |
| 76 | intended to be used for any application-level |
| 77 | ** logic other than in defense against spiders F | flags |= LOOK_LF; | * to convey status informat** to convey status information about the blob content. |
| 78 | */ |
| 79 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 80 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a |
| 81 | ** high-level check, not intended to be used for any application-level |
| 82 | ** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 83 | |
| 84 | /* |
| 85 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 86 | ** to convey status information about the blob content. |
| 87 | */ |
| 88 | #define LOOK_NONE ((int)0((blob), LOOK_BINARY, 0) & LO{ |
| 89 | *def || (c> ){ |
| 90 | return 1 }c>=0x8tf8((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 91 | |
| 92 | /* |
| 93 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 94 | ** to convey status information about the blob content. |
| 95 | */ |
| 96 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 97 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is only a |
| 98 | ** high-level check, not intended to be used for any application-level |
| 99 | ** logic other than in defense against spiders in limited context((blob), LOOK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 100 | |
| 101 | /* |
| 102 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 103 | ** to convey status information about the blob content. |
| 104 | */ |
| 105 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 106 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOKY, 0) & LOOK_BINARY) }utf8((blob), LOOKK_BINARY, 0) & LOOK_BINARY) != LOOK_NONE) |
| 107 | |
| 108 | /* |
| 109 | ** Output flags for the looks_like_utf8() and looks_like_utf16() routines used |
| 110 | ** to convey status information about the blob content. |
| 111 | */ |
| 112 | #define LOOK_NONE ((int)0x00000000) /* Nothing special was found. */ |
| 113 | #define LOOK_NUL ((int)0x00000001) /* One or more Nfossil_isalnumne LOOK_NUL ((int)0x00000001) /* One or more Nutf8((blob), Lz[i+n]!=0&&SQL. This is o1if( flags&stopFlags ) break; |
| 114 | n -= sizeof(WCHAR_T); |
| 115 | if( n< break/*bRevUnicodefUtf16((int)0x00000000) utf8((blob), LOOK_BINARY, 0) & LfUnicode = 0; |
| 116 | }else{ |
| 117 | &bRevUnicode) || fForceUtEF, 0xBB, 0xBFlookFlags = fUnicode ? : |
| 118 | und. */ |
| 119 | #define |
+11
-1
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -67,10 +67,11 @@ | ||
| 67 | 67 | $(SRCDIR)/json_timeline.c \ |
| 68 | 68 | $(SRCDIR)/json_user.c \ |
| 69 | 69 | $(SRCDIR)/json_wiki.c \ |
| 70 | 70 | $(SRCDIR)/leaf.c \ |
| 71 | 71 | $(SRCDIR)/login.c \ |
| 72 | + $(SRCDIR)/lookslike.c \ | |
| 72 | 73 | $(SRCDIR)/main.c \ |
| 73 | 74 | $(SRCDIR)/manifest.c \ |
| 74 | 75 | $(SRCDIR)/markdown.c \ |
| 75 | 76 | $(SRCDIR)/markdown_html.c \ |
| 76 | 77 | $(SRCDIR)/md5.c \ |
| @@ -175,10 +176,11 @@ | ||
| 175 | 176 | $(OBJDIR)/json_timeline_.c \ |
| 176 | 177 | $(OBJDIR)/json_user_.c \ |
| 177 | 178 | $(OBJDIR)/json_wiki_.c \ |
| 178 | 179 | $(OBJDIR)/leaf_.c \ |
| 179 | 180 | $(OBJDIR)/login_.c \ |
| 181 | + $(OBJDIR)/lookslike_.c \ | |
| 180 | 182 | $(OBJDIR)/main_.c \ |
| 181 | 183 | $(OBJDIR)/manifest_.c \ |
| 182 | 184 | $(OBJDIR)/markdown_.c \ |
| 183 | 185 | $(OBJDIR)/markdown_html_.c \ |
| 184 | 186 | $(OBJDIR)/md5_.c \ |
| @@ -283,10 +285,11 @@ | ||
| 283 | 285 | $(OBJDIR)/json_timeline.o \ |
| 284 | 286 | $(OBJDIR)/json_user.o \ |
| 285 | 287 | $(OBJDIR)/json_wiki.o \ |
| 286 | 288 | $(OBJDIR)/leaf.o \ |
| 287 | 289 | $(OBJDIR)/login.o \ |
| 290 | + $(OBJDIR)/lookslike.o \ | |
| 288 | 291 | $(OBJDIR)/main.o \ |
| 289 | 292 | $(OBJDIR)/manifest.o \ |
| 290 | 293 | $(OBJDIR)/markdown.o \ |
| 291 | 294 | $(OBJDIR)/markdown_html.o \ |
| 292 | 295 | $(OBJDIR)/md5.o \ |
| @@ -402,11 +405,11 @@ | ||
| 402 | 405 | |
| 403 | 406 | |
| 404 | 407 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 405 | 408 | $(OBJDIR)/mkindex $(TRANS_SRC) >$@ |
| 406 | 409 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 407 | - $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_status_.c:$(OBJDIR)/json_status.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/regexp_.c:$(OBJDIR)/regexp.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/unicode_.c:$(OBJDIR)/unicode.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/utf8_.c:$(OBJDIR)/utf8.h $(OBJDIR)/util_.c:$(OBJDIR)/util.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h | |
| 410 | + $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_status_.c:$(OBJDIR)/json_status.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/regexp_.c:$(OBJDIR)/regexp.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/unicode_.c:$(OBJDIR)/unicode.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/utf8_.c:$(OBJDIR)/utf8.h $(OBJDIR)/util_.c:$(OBJDIR)/util.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h | |
| 408 | 411 | touch $(OBJDIR)/headers |
| 409 | 412 | $(OBJDIR)/headers: Makefile |
| 410 | 413 | $(OBJDIR)/json.o $(OBJDIR)/json_artifact.o $(OBJDIR)/json_branch.o $(OBJDIR)/json_config.o $(OBJDIR)/json_diff.o $(OBJDIR)/json_dir.o $(OBJDIR)/json_finfo.o $(OBJDIR)/json_login.o $(OBJDIR)/json_query.o $(OBJDIR)/json_report.o $(OBJDIR)/json_status.o $(OBJDIR)/json_tag.o $(OBJDIR)/json_timeline.o $(OBJDIR)/json_user.o $(OBJDIR)/json_wiki.o : $(SRCDIR)/json_detail.h |
| 411 | 414 | Makefile: |
| 412 | 415 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -792,10 +795,17 @@ | ||
| 792 | 795 | |
| 793 | 796 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 794 | 797 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 795 | 798 | |
| 796 | 799 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 800 | +$(OBJDIR)/lookslike_.c: $(SRCDIR)/lookslike.c $(OBJDIR)/translate | |
| 801 | + $(OBJDIR)/translate $(SRCDIR)/lookslike.c >$(OBJDIR)/lookslike_.c | |
| 802 | + | |
| 803 | +$(OBJDIR)/lookslike.o: $(OBJDIR)/lookslike_.c $(OBJDIR)/lookslike.h $(SRCDIR)/config.h | |
| 804 | + $(XTCC) -o $(OBJDIR)/lookslike.o -c $(OBJDIR)/lookslike_.c | |
| 805 | + | |
| 806 | +$(OBJDIR)/lookslike.h: $(OBJDIR)/headers | |
| 797 | 807 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 798 | 808 | $(OBJDIR)/translate $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 799 | 809 | |
| 800 | 810 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 801 | 811 | $(XTCC) -o $(OBJDIR)/main.o -c $(OBJDIR)/main_.c |
| 802 | 812 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -67,10 +67,11 @@ | |
| 67 | $(SRCDIR)/json_timeline.c \ |
| 68 | $(SRCDIR)/json_user.c \ |
| 69 | $(SRCDIR)/json_wiki.c \ |
| 70 | $(SRCDIR)/leaf.c \ |
| 71 | $(SRCDIR)/login.c \ |
| 72 | $(SRCDIR)/main.c \ |
| 73 | $(SRCDIR)/manifest.c \ |
| 74 | $(SRCDIR)/markdown.c \ |
| 75 | $(SRCDIR)/markdown_html.c \ |
| 76 | $(SRCDIR)/md5.c \ |
| @@ -175,10 +176,11 @@ | |
| 175 | $(OBJDIR)/json_timeline_.c \ |
| 176 | $(OBJDIR)/json_user_.c \ |
| 177 | $(OBJDIR)/json_wiki_.c \ |
| 178 | $(OBJDIR)/leaf_.c \ |
| 179 | $(OBJDIR)/login_.c \ |
| 180 | $(OBJDIR)/main_.c \ |
| 181 | $(OBJDIR)/manifest_.c \ |
| 182 | $(OBJDIR)/markdown_.c \ |
| 183 | $(OBJDIR)/markdown_html_.c \ |
| 184 | $(OBJDIR)/md5_.c \ |
| @@ -283,10 +285,11 @@ | |
| 283 | $(OBJDIR)/json_timeline.o \ |
| 284 | $(OBJDIR)/json_user.o \ |
| 285 | $(OBJDIR)/json_wiki.o \ |
| 286 | $(OBJDIR)/leaf.o \ |
| 287 | $(OBJDIR)/login.o \ |
| 288 | $(OBJDIR)/main.o \ |
| 289 | $(OBJDIR)/manifest.o \ |
| 290 | $(OBJDIR)/markdown.o \ |
| 291 | $(OBJDIR)/markdown_html.o \ |
| 292 | $(OBJDIR)/md5.o \ |
| @@ -402,11 +405,11 @@ | |
| 402 | |
| 403 | |
| 404 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 405 | $(OBJDIR)/mkindex $(TRANS_SRC) >$@ |
| 406 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 407 | $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_status_.c:$(OBJDIR)/json_status.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/regexp_.c:$(OBJDIR)/regexp.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/unicode_.c:$(OBJDIR)/unicode.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/utf8_.c:$(OBJDIR)/utf8.h $(OBJDIR)/util_.c:$(OBJDIR)/util.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h |
| 408 | touch $(OBJDIR)/headers |
| 409 | $(OBJDIR)/headers: Makefile |
| 410 | $(OBJDIR)/json.o $(OBJDIR)/json_artifact.o $(OBJDIR)/json_branch.o $(OBJDIR)/json_config.o $(OBJDIR)/json_diff.o $(OBJDIR)/json_dir.o $(OBJDIR)/json_finfo.o $(OBJDIR)/json_login.o $(OBJDIR)/json_query.o $(OBJDIR)/json_report.o $(OBJDIR)/json_status.o $(OBJDIR)/json_tag.o $(OBJDIR)/json_timeline.o $(OBJDIR)/json_user.o $(OBJDIR)/json_wiki.o : $(SRCDIR)/json_detail.h |
| 411 | Makefile: |
| 412 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -792,10 +795,17 @@ | |
| 792 | |
| 793 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 794 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 795 | |
| 796 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 797 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 798 | $(OBJDIR)/translate $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 799 | |
| 800 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 801 | $(XTCC) -o $(OBJDIR)/main.o -c $(OBJDIR)/main_.c |
| 802 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -67,10 +67,11 @@ | |
| 67 | $(SRCDIR)/json_timeline.c \ |
| 68 | $(SRCDIR)/json_user.c \ |
| 69 | $(SRCDIR)/json_wiki.c \ |
| 70 | $(SRCDIR)/leaf.c \ |
| 71 | $(SRCDIR)/login.c \ |
| 72 | $(SRCDIR)/lookslike.c \ |
| 73 | $(SRCDIR)/main.c \ |
| 74 | $(SRCDIR)/manifest.c \ |
| 75 | $(SRCDIR)/markdown.c \ |
| 76 | $(SRCDIR)/markdown_html.c \ |
| 77 | $(SRCDIR)/md5.c \ |
| @@ -175,10 +176,11 @@ | |
| 176 | $(OBJDIR)/json_timeline_.c \ |
| 177 | $(OBJDIR)/json_user_.c \ |
| 178 | $(OBJDIR)/json_wiki_.c \ |
| 179 | $(OBJDIR)/leaf_.c \ |
| 180 | $(OBJDIR)/login_.c \ |
| 181 | $(OBJDIR)/lookslike_.c \ |
| 182 | $(OBJDIR)/main_.c \ |
| 183 | $(OBJDIR)/manifest_.c \ |
| 184 | $(OBJDIR)/markdown_.c \ |
| 185 | $(OBJDIR)/markdown_html_.c \ |
| 186 | $(OBJDIR)/md5_.c \ |
| @@ -283,10 +285,11 @@ | |
| 285 | $(OBJDIR)/json_timeline.o \ |
| 286 | $(OBJDIR)/json_user.o \ |
| 287 | $(OBJDIR)/json_wiki.o \ |
| 288 | $(OBJDIR)/leaf.o \ |
| 289 | $(OBJDIR)/login.o \ |
| 290 | $(OBJDIR)/lookslike.o \ |
| 291 | $(OBJDIR)/main.o \ |
| 292 | $(OBJDIR)/manifest.o \ |
| 293 | $(OBJDIR)/markdown.o \ |
| 294 | $(OBJDIR)/markdown_html.o \ |
| 295 | $(OBJDIR)/md5.o \ |
| @@ -402,11 +405,11 @@ | |
| 405 | |
| 406 | |
| 407 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 408 | $(OBJDIR)/mkindex $(TRANS_SRC) >$@ |
| 409 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 410 | $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_status_.c:$(OBJDIR)/json_status.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/regexp_.c:$(OBJDIR)/regexp.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/unicode_.c:$(OBJDIR)/unicode.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/utf8_.c:$(OBJDIR)/utf8.h $(OBJDIR)/util_.c:$(OBJDIR)/util.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h |
| 411 | touch $(OBJDIR)/headers |
| 412 | $(OBJDIR)/headers: Makefile |
| 413 | $(OBJDIR)/json.o $(OBJDIR)/json_artifact.o $(OBJDIR)/json_branch.o $(OBJDIR)/json_config.o $(OBJDIR)/json_diff.o $(OBJDIR)/json_dir.o $(OBJDIR)/json_finfo.o $(OBJDIR)/json_login.o $(OBJDIR)/json_query.o $(OBJDIR)/json_report.o $(OBJDIR)/json_status.o $(OBJDIR)/json_tag.o $(OBJDIR)/json_timeline.o $(OBJDIR)/json_user.o $(OBJDIR)/json_wiki.o : $(SRCDIR)/json_detail.h |
| 414 | Makefile: |
| 415 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -792,10 +795,17 @@ | |
| 795 | |
| 796 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 797 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 798 | |
| 799 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 800 | $(OBJDIR)/lookslike_.c: $(SRCDIR)/lookslike.c $(OBJDIR)/translate |
| 801 | $(OBJDIR)/translate $(SRCDIR)/lookslike.c >$(OBJDIR)/lookslike_.c |
| 802 | |
| 803 | $(OBJDIR)/lookslike.o: $(OBJDIR)/lookslike_.c $(OBJDIR)/lookslike.h $(SRCDIR)/config.h |
| 804 | $(XTCC) -o $(OBJDIR)/lookslike.o -c $(OBJDIR)/lookslike_.c |
| 805 | |
| 806 | $(OBJDIR)/lookslike.h: $(OBJDIR)/headers |
| 807 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 808 | $(OBJDIR)/translate $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 809 | |
| 810 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 811 | $(XTCC) -o $(OBJDIR)/main.o -c $(OBJDIR)/main_.c |
| 812 |
+1
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -70,10 +70,11 @@ | ||
| 70 | 70 | json_timeline |
| 71 | 71 | json_user |
| 72 | 72 | json_wiki |
| 73 | 73 | leaf |
| 74 | 74 | login |
| 75 | + lookslike | |
| 75 | 76 | main |
| 76 | 77 | manifest |
| 77 | 78 | markdown |
| 78 | 79 | markdown_html |
| 79 | 80 | md5 |
| 80 | 81 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -70,10 +70,11 @@ | |
| 70 | json_timeline |
| 71 | json_user |
| 72 | json_wiki |
| 73 | leaf |
| 74 | login |
| 75 | main |
| 76 | manifest |
| 77 | markdown |
| 78 | markdown_html |
| 79 | md5 |
| 80 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -70,10 +70,11 @@ | |
| 70 | json_timeline |
| 71 | json_user |
| 72 | json_wiki |
| 73 | leaf |
| 74 | login |
| 75 | lookslike |
| 76 | main |
| 77 | manifest |
| 78 | markdown |
| 79 | markdown_html |
| 80 | md5 |
| 81 |
+10
-4
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -26,13 +26,13 @@ | ||
| 26 | 26 | TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) |
| 27 | 27 | LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 |
| 28 | 28 | |
| 29 | 29 | SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_STAT3 -Dlocaltime=fossil_localtime -DSQLITE_ENABLE_LOCKING_STYLE=0 |
| 30 | 30 | |
| 31 | -SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c login_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 31 | +SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 32 | 32 | |
| 33 | -OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\login$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 33 | +OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 34 | 34 | |
| 35 | 35 | |
| 36 | 36 | RC=$(DMDIR)\bin\rcc |
| 37 | 37 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 38 | 38 | |
| @@ -46,11 +46,11 @@ | ||
| 46 | 46 | |
| 47 | 47 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 48 | 48 | $(RC) $(RCFLAGS) -o$@ $** |
| 49 | 49 | |
| 50 | 50 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 51 | - +echo add allrepo attach bag bisect blob branch browse captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf login main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 51 | + +echo add allrepo attach bag bisect blob branch browse captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 52 | 52 | +echo fossil >> $@ |
| 53 | 53 | +echo fossil >> $@ |
| 54 | 54 | +echo $(LIBS) >> $@ |
| 55 | 55 | +echo. >> $@ |
| 56 | 56 | +echo fossil >> $@ |
| @@ -440,10 +440,16 @@ | ||
| 440 | 440 | $(OBJDIR)\login$O : login_.c login.h |
| 441 | 441 | $(TCC) -o$@ -c login_.c |
| 442 | 442 | |
| 443 | 443 | login_.c : $(SRCDIR)\login.c |
| 444 | 444 | +translate$E $** > $@ |
| 445 | + | |
| 446 | +$(OBJDIR)\lookslike$O : lookslike_.c lookslike.h | |
| 447 | + $(TCC) -o$@ -c lookslike_.c | |
| 448 | + | |
| 449 | +lookslike_.c : $(SRCDIR)\lookslike.c | |
| 450 | + +translate$E $** > $@ | |
| 445 | 451 | |
| 446 | 452 | $(OBJDIR)\main$O : main_.c main.h |
| 447 | 453 | $(TCC) -o$@ -c main_.c |
| 448 | 454 | |
| 449 | 455 | main_.c : $(SRCDIR)\main.c |
| @@ -748,7 +754,7 @@ | ||
| 748 | 754 | |
| 749 | 755 | zip_.c : $(SRCDIR)\zip.c |
| 750 | 756 | +translate$E $** > $@ |
| 751 | 757 | |
| 752 | 758 | headers: makeheaders$E page_index.h VERSION.h |
| 753 | - +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 759 | + +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 754 | 760 | @copy /Y nul: headers |
| 755 | 761 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -26,13 +26,13 @@ | |
| 26 | TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) |
| 27 | LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 |
| 28 | |
| 29 | SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_STAT3 -Dlocaltime=fossil_localtime -DSQLITE_ENABLE_LOCKING_STYLE=0 |
| 30 | |
| 31 | SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c login_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 32 | |
| 33 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\login$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 34 | |
| 35 | |
| 36 | RC=$(DMDIR)\bin\rcc |
| 37 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 38 | |
| @@ -46,11 +46,11 @@ | |
| 46 | |
| 47 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 48 | $(RC) $(RCFLAGS) -o$@ $** |
| 49 | |
| 50 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 51 | +echo add allrepo attach bag bisect blob branch browse captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf login main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 52 | +echo fossil >> $@ |
| 53 | +echo fossil >> $@ |
| 54 | +echo $(LIBS) >> $@ |
| 55 | +echo. >> $@ |
| 56 | +echo fossil >> $@ |
| @@ -440,10 +440,16 @@ | |
| 440 | $(OBJDIR)\login$O : login_.c login.h |
| 441 | $(TCC) -o$@ -c login_.c |
| 442 | |
| 443 | login_.c : $(SRCDIR)\login.c |
| 444 | +translate$E $** > $@ |
| 445 | |
| 446 | $(OBJDIR)\main$O : main_.c main.h |
| 447 | $(TCC) -o$@ -c main_.c |
| 448 | |
| 449 | main_.c : $(SRCDIR)\main.c |
| @@ -748,7 +754,7 @@ | |
| 748 | |
| 749 | zip_.c : $(SRCDIR)\zip.c |
| 750 | +translate$E $** > $@ |
| 751 | |
| 752 | headers: makeheaders$E page_index.h VERSION.h |
| 753 | +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 754 | @copy /Y nul: headers |
| 755 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -26,13 +26,13 @@ | |
| 26 | TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL) |
| 27 | LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 |
| 28 | |
| 29 | SQLITE_OPTIONS = -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_STAT3 -Dlocaltime=fossil_localtime -DSQLITE_ENABLE_LOCKING_STYLE=0 |
| 30 | |
| 31 | SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 32 | |
| 33 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\shun$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 34 | |
| 35 | |
| 36 | RC=$(DMDIR)\bin\rcc |
| 37 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 38 | |
| @@ -46,11 +46,11 @@ | |
| 46 | |
| 47 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 48 | $(RC) $(RCFLAGS) -o$@ $** |
| 49 | |
| 50 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 51 | +echo add allrepo attach bag bisect blob branch browse captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 52 | +echo fossil >> $@ |
| 53 | +echo fossil >> $@ |
| 54 | +echo $(LIBS) >> $@ |
| 55 | +echo. >> $@ |
| 56 | +echo fossil >> $@ |
| @@ -440,10 +440,16 @@ | |
| 440 | $(OBJDIR)\login$O : login_.c login.h |
| 441 | $(TCC) -o$@ -c login_.c |
| 442 | |
| 443 | login_.c : $(SRCDIR)\login.c |
| 444 | +translate$E $** > $@ |
| 445 | |
| 446 | $(OBJDIR)\lookslike$O : lookslike_.c lookslike.h |
| 447 | $(TCC) -o$@ -c lookslike_.c |
| 448 | |
| 449 | lookslike_.c : $(SRCDIR)\lookslike.c |
| 450 | +translate$E $** > $@ |
| 451 | |
| 452 | $(OBJDIR)\main$O : main_.c main.h |
| 453 | $(TCC) -o$@ -c main_.c |
| 454 | |
| 455 | main_.c : $(SRCDIR)\main.c |
| @@ -748,7 +754,7 @@ | |
| 754 | |
| 755 | zip_.c : $(SRCDIR)\zip.c |
| 756 | +translate$E $** > $@ |
| 757 | |
| 758 | headers: makeheaders$E page_index.h VERSION.h |
| 759 | +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 760 | @copy /Y nul: headers |
| 761 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -298,10 +298,11 @@ | ||
| 298 | 298 | $(SRCDIR)/json_timeline.c \ |
| 299 | 299 | $(SRCDIR)/json_user.c \ |
| 300 | 300 | $(SRCDIR)/json_wiki.c \ |
| 301 | 301 | $(SRCDIR)/leaf.c \ |
| 302 | 302 | $(SRCDIR)/login.c \ |
| 303 | + $(SRCDIR)/lookslike.c \ | |
| 303 | 304 | $(SRCDIR)/main.c \ |
| 304 | 305 | $(SRCDIR)/manifest.c \ |
| 305 | 306 | $(SRCDIR)/markdown.c \ |
| 306 | 307 | $(SRCDIR)/markdown_html.c \ |
| 307 | 308 | $(SRCDIR)/md5.c \ |
| @@ -406,10 +407,11 @@ | ||
| 406 | 407 | $(OBJDIR)/json_timeline_.c \ |
| 407 | 408 | $(OBJDIR)/json_user_.c \ |
| 408 | 409 | $(OBJDIR)/json_wiki_.c \ |
| 409 | 410 | $(OBJDIR)/leaf_.c \ |
| 410 | 411 | $(OBJDIR)/login_.c \ |
| 412 | + $(OBJDIR)/lookslike_.c \ | |
| 411 | 413 | $(OBJDIR)/main_.c \ |
| 412 | 414 | $(OBJDIR)/manifest_.c \ |
| 413 | 415 | $(OBJDIR)/markdown_.c \ |
| 414 | 416 | $(OBJDIR)/markdown_html_.c \ |
| 415 | 417 | $(OBJDIR)/md5_.c \ |
| @@ -514,10 +516,11 @@ | ||
| 514 | 516 | $(OBJDIR)/json_timeline.o \ |
| 515 | 517 | $(OBJDIR)/json_user.o \ |
| 516 | 518 | $(OBJDIR)/json_wiki.o \ |
| 517 | 519 | $(OBJDIR)/leaf.o \ |
| 518 | 520 | $(OBJDIR)/login.o \ |
| 521 | + $(OBJDIR)/lookslike.o \ | |
| 519 | 522 | $(OBJDIR)/main.o \ |
| 520 | 523 | $(OBJDIR)/manifest.o \ |
| 521 | 524 | $(OBJDIR)/markdown.o \ |
| 522 | 525 | $(OBJDIR)/markdown_html.o \ |
| 523 | 526 | $(OBJDIR)/md5.o \ |
| @@ -735,10 +738,11 @@ | ||
| 735 | 738 | $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h \ |
| 736 | 739 | $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h \ |
| 737 | 740 | $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h \ |
| 738 | 741 | $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h \ |
| 739 | 742 | $(OBJDIR)/login_.c:$(OBJDIR)/login.h \ |
| 743 | + $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \ | |
| 740 | 744 | $(OBJDIR)/main_.c:$(OBJDIR)/main.h \ |
| 741 | 745 | $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \ |
| 742 | 746 | $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \ |
| 743 | 747 | $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \ |
| 744 | 748 | $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \ |
| @@ -1234,10 +1238,18 @@ | ||
| 1234 | 1238 | |
| 1235 | 1239 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 1236 | 1240 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 1237 | 1241 | |
| 1238 | 1242 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 1243 | + | |
| 1244 | +$(OBJDIR)/lookslike_.c: $(SRCDIR)/lookslike.c $(OBJDIR)/translate | |
| 1245 | + $(TRANSLATE) $(SRCDIR)/lookslike.c >$(OBJDIR)/lookslike_.c | |
| 1246 | + | |
| 1247 | +$(OBJDIR)/lookslike.o: $(OBJDIR)/lookslike_.c $(OBJDIR)/lookslike.h $(SRCDIR)/config.h | |
| 1248 | + $(XTCC) -o $(OBJDIR)/lookslike.o -c $(OBJDIR)/lookslike_.c | |
| 1249 | + | |
| 1250 | +$(OBJDIR)/lookslike.h: $(OBJDIR)/headers | |
| 1239 | 1251 | |
| 1240 | 1252 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 1241 | 1253 | $(TRANSLATE) $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 1242 | 1254 | |
| 1243 | 1255 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 1244 | 1256 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -298,10 +298,11 @@ | |
| 298 | $(SRCDIR)/json_timeline.c \ |
| 299 | $(SRCDIR)/json_user.c \ |
| 300 | $(SRCDIR)/json_wiki.c \ |
| 301 | $(SRCDIR)/leaf.c \ |
| 302 | $(SRCDIR)/login.c \ |
| 303 | $(SRCDIR)/main.c \ |
| 304 | $(SRCDIR)/manifest.c \ |
| 305 | $(SRCDIR)/markdown.c \ |
| 306 | $(SRCDIR)/markdown_html.c \ |
| 307 | $(SRCDIR)/md5.c \ |
| @@ -406,10 +407,11 @@ | |
| 406 | $(OBJDIR)/json_timeline_.c \ |
| 407 | $(OBJDIR)/json_user_.c \ |
| 408 | $(OBJDIR)/json_wiki_.c \ |
| 409 | $(OBJDIR)/leaf_.c \ |
| 410 | $(OBJDIR)/login_.c \ |
| 411 | $(OBJDIR)/main_.c \ |
| 412 | $(OBJDIR)/manifest_.c \ |
| 413 | $(OBJDIR)/markdown_.c \ |
| 414 | $(OBJDIR)/markdown_html_.c \ |
| 415 | $(OBJDIR)/md5_.c \ |
| @@ -514,10 +516,11 @@ | |
| 514 | $(OBJDIR)/json_timeline.o \ |
| 515 | $(OBJDIR)/json_user.o \ |
| 516 | $(OBJDIR)/json_wiki.o \ |
| 517 | $(OBJDIR)/leaf.o \ |
| 518 | $(OBJDIR)/login.o \ |
| 519 | $(OBJDIR)/main.o \ |
| 520 | $(OBJDIR)/manifest.o \ |
| 521 | $(OBJDIR)/markdown.o \ |
| 522 | $(OBJDIR)/markdown_html.o \ |
| 523 | $(OBJDIR)/md5.o \ |
| @@ -735,10 +738,11 @@ | |
| 735 | $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h \ |
| 736 | $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h \ |
| 737 | $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h \ |
| 738 | $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h \ |
| 739 | $(OBJDIR)/login_.c:$(OBJDIR)/login.h \ |
| 740 | $(OBJDIR)/main_.c:$(OBJDIR)/main.h \ |
| 741 | $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \ |
| 742 | $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \ |
| 743 | $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \ |
| 744 | $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \ |
| @@ -1234,10 +1238,18 @@ | |
| 1234 | |
| 1235 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 1236 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 1237 | |
| 1238 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 1239 | |
| 1240 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 1241 | $(TRANSLATE) $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 1242 | |
| 1243 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 1244 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -298,10 +298,11 @@ | |
| 298 | $(SRCDIR)/json_timeline.c \ |
| 299 | $(SRCDIR)/json_user.c \ |
| 300 | $(SRCDIR)/json_wiki.c \ |
| 301 | $(SRCDIR)/leaf.c \ |
| 302 | $(SRCDIR)/login.c \ |
| 303 | $(SRCDIR)/lookslike.c \ |
| 304 | $(SRCDIR)/main.c \ |
| 305 | $(SRCDIR)/manifest.c \ |
| 306 | $(SRCDIR)/markdown.c \ |
| 307 | $(SRCDIR)/markdown_html.c \ |
| 308 | $(SRCDIR)/md5.c \ |
| @@ -406,10 +407,11 @@ | |
| 407 | $(OBJDIR)/json_timeline_.c \ |
| 408 | $(OBJDIR)/json_user_.c \ |
| 409 | $(OBJDIR)/json_wiki_.c \ |
| 410 | $(OBJDIR)/leaf_.c \ |
| 411 | $(OBJDIR)/login_.c \ |
| 412 | $(OBJDIR)/lookslike_.c \ |
| 413 | $(OBJDIR)/main_.c \ |
| 414 | $(OBJDIR)/manifest_.c \ |
| 415 | $(OBJDIR)/markdown_.c \ |
| 416 | $(OBJDIR)/markdown_html_.c \ |
| 417 | $(OBJDIR)/md5_.c \ |
| @@ -514,10 +516,11 @@ | |
| 516 | $(OBJDIR)/json_timeline.o \ |
| 517 | $(OBJDIR)/json_user.o \ |
| 518 | $(OBJDIR)/json_wiki.o \ |
| 519 | $(OBJDIR)/leaf.o \ |
| 520 | $(OBJDIR)/login.o \ |
| 521 | $(OBJDIR)/lookslike.o \ |
| 522 | $(OBJDIR)/main.o \ |
| 523 | $(OBJDIR)/manifest.o \ |
| 524 | $(OBJDIR)/markdown.o \ |
| 525 | $(OBJDIR)/markdown_html.o \ |
| 526 | $(OBJDIR)/md5.o \ |
| @@ -735,10 +738,11 @@ | |
| 738 | $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h \ |
| 739 | $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h \ |
| 740 | $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h \ |
| 741 | $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h \ |
| 742 | $(OBJDIR)/login_.c:$(OBJDIR)/login.h \ |
| 743 | $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \ |
| 744 | $(OBJDIR)/main_.c:$(OBJDIR)/main.h \ |
| 745 | $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \ |
| 746 | $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \ |
| 747 | $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \ |
| 748 | $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \ |
| @@ -1234,10 +1238,18 @@ | |
| 1238 | |
| 1239 | $(OBJDIR)/login.o: $(OBJDIR)/login_.c $(OBJDIR)/login.h $(SRCDIR)/config.h |
| 1240 | $(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c |
| 1241 | |
| 1242 | $(OBJDIR)/login.h: $(OBJDIR)/headers |
| 1243 | |
| 1244 | $(OBJDIR)/lookslike_.c: $(SRCDIR)/lookslike.c $(OBJDIR)/translate |
| 1245 | $(TRANSLATE) $(SRCDIR)/lookslike.c >$(OBJDIR)/lookslike_.c |
| 1246 | |
| 1247 | $(OBJDIR)/lookslike.o: $(OBJDIR)/lookslike_.c $(OBJDIR)/lookslike.h $(SRCDIR)/config.h |
| 1248 | $(XTCC) -o $(OBJDIR)/lookslike.o -c $(OBJDIR)/lookslike_.c |
| 1249 | |
| 1250 | $(OBJDIR)/lookslike.h: $(OBJDIR)/headers |
| 1251 | |
| 1252 | $(OBJDIR)/main_.c: $(SRCDIR)/main.c $(OBJDIR)/translate |
| 1253 | $(TRANSLATE) $(SRCDIR)/main.c >$(OBJDIR)/main_.c |
| 1254 | |
| 1255 | $(OBJDIR)/main.o: $(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h |
| 1256 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -116,10 +116,11 @@ | ||
| 116 | 116 | json_timeline_.c \ |
| 117 | 117 | json_user_.c \ |
| 118 | 118 | json_wiki_.c \ |
| 119 | 119 | leaf_.c \ |
| 120 | 120 | login_.c \ |
| 121 | + lookslike_.c \ | |
| 121 | 122 | main_.c \ |
| 122 | 123 | manifest_.c \ |
| 123 | 124 | markdown_.c \ |
| 124 | 125 | markdown_html_.c \ |
| 125 | 126 | md5_.c \ |
| @@ -224,10 +225,11 @@ | ||
| 224 | 225 | $(OX)\json_timeline$O \ |
| 225 | 226 | $(OX)\json_user$O \ |
| 226 | 227 | $(OX)\json_wiki$O \ |
| 227 | 228 | $(OX)\leaf$O \ |
| 228 | 229 | $(OX)\login$O \ |
| 230 | + $(OX)\lookslike$O \ | |
| 229 | 231 | $(OX)\main$O \ |
| 230 | 232 | $(OX)\manifest$O \ |
| 231 | 233 | $(OX)\markdown$O \ |
| 232 | 234 | $(OX)\markdown_html$O \ |
| 233 | 235 | $(OX)\md5$O \ |
| @@ -350,10 +352,11 @@ | ||
| 350 | 352 | echo $(OX)\json_timeline.obj >> $@ |
| 351 | 353 | echo $(OX)\json_user.obj >> $@ |
| 352 | 354 | echo $(OX)\json_wiki.obj >> $@ |
| 353 | 355 | echo $(OX)\leaf.obj >> $@ |
| 354 | 356 | echo $(OX)\login.obj >> $@ |
| 357 | + echo $(OX)\lookslike.obj >> $@ | |
| 355 | 358 | echo $(OX)\main.obj >> $@ |
| 356 | 359 | echo $(OX)\manifest.obj >> $@ |
| 357 | 360 | echo $(OX)\markdown.obj >> $@ |
| 358 | 361 | echo $(OX)\markdown_html.obj >> $@ |
| 359 | 362 | echo $(OX)\md5.obj >> $@ |
| @@ -809,10 +812,16 @@ | ||
| 809 | 812 | $(OX)\login$O : login_.c login.h |
| 810 | 813 | $(TCC) /Fo$@ -c login_.c |
| 811 | 814 | |
| 812 | 815 | login_.c : $(SRCDIR)\login.c |
| 813 | 816 | translate$E $** > $@ |
| 817 | + | |
| 818 | +$(OX)\lookslike$O : lookslike_.c lookslike.h | |
| 819 | + $(TCC) /Fo$@ -c lookslike_.c | |
| 820 | + | |
| 821 | +lookslike_.c : $(SRCDIR)\lookslike.c | |
| 822 | + translate$E $** > $@ | |
| 814 | 823 | |
| 815 | 824 | $(OX)\main$O : main_.c main.h |
| 816 | 825 | $(TCC) /Fo$@ -c main_.c |
| 817 | 826 | |
| 818 | 827 | main_.c : $(SRCDIR)\main.c |
| @@ -1174,10 +1183,11 @@ | ||
| 1174 | 1183 | json_timeline_.c:json_timeline.h \ |
| 1175 | 1184 | json_user_.c:json_user.h \ |
| 1176 | 1185 | json_wiki_.c:json_wiki.h \ |
| 1177 | 1186 | leaf_.c:leaf.h \ |
| 1178 | 1187 | login_.c:login.h \ |
| 1188 | + lookslike_.c:lookslike.h \ | |
| 1179 | 1189 | main_.c:main.h \ |
| 1180 | 1190 | manifest_.c:manifest.h \ |
| 1181 | 1191 | markdown_.c:markdown.h \ |
| 1182 | 1192 | markdown_html_.c:markdown_html.h \ |
| 1183 | 1193 | md5_.c:md5.h \ |
| 1184 | 1194 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -116,10 +116,11 @@ | |
| 116 | json_timeline_.c \ |
| 117 | json_user_.c \ |
| 118 | json_wiki_.c \ |
| 119 | leaf_.c \ |
| 120 | login_.c \ |
| 121 | main_.c \ |
| 122 | manifest_.c \ |
| 123 | markdown_.c \ |
| 124 | markdown_html_.c \ |
| 125 | md5_.c \ |
| @@ -224,10 +225,11 @@ | |
| 224 | $(OX)\json_timeline$O \ |
| 225 | $(OX)\json_user$O \ |
| 226 | $(OX)\json_wiki$O \ |
| 227 | $(OX)\leaf$O \ |
| 228 | $(OX)\login$O \ |
| 229 | $(OX)\main$O \ |
| 230 | $(OX)\manifest$O \ |
| 231 | $(OX)\markdown$O \ |
| 232 | $(OX)\markdown_html$O \ |
| 233 | $(OX)\md5$O \ |
| @@ -350,10 +352,11 @@ | |
| 350 | echo $(OX)\json_timeline.obj >> $@ |
| 351 | echo $(OX)\json_user.obj >> $@ |
| 352 | echo $(OX)\json_wiki.obj >> $@ |
| 353 | echo $(OX)\leaf.obj >> $@ |
| 354 | echo $(OX)\login.obj >> $@ |
| 355 | echo $(OX)\main.obj >> $@ |
| 356 | echo $(OX)\manifest.obj >> $@ |
| 357 | echo $(OX)\markdown.obj >> $@ |
| 358 | echo $(OX)\markdown_html.obj >> $@ |
| 359 | echo $(OX)\md5.obj >> $@ |
| @@ -809,10 +812,16 @@ | |
| 809 | $(OX)\login$O : login_.c login.h |
| 810 | $(TCC) /Fo$@ -c login_.c |
| 811 | |
| 812 | login_.c : $(SRCDIR)\login.c |
| 813 | translate$E $** > $@ |
| 814 | |
| 815 | $(OX)\main$O : main_.c main.h |
| 816 | $(TCC) /Fo$@ -c main_.c |
| 817 | |
| 818 | main_.c : $(SRCDIR)\main.c |
| @@ -1174,10 +1183,11 @@ | |
| 1174 | json_timeline_.c:json_timeline.h \ |
| 1175 | json_user_.c:json_user.h \ |
| 1176 | json_wiki_.c:json_wiki.h \ |
| 1177 | leaf_.c:leaf.h \ |
| 1178 | login_.c:login.h \ |
| 1179 | main_.c:main.h \ |
| 1180 | manifest_.c:manifest.h \ |
| 1181 | markdown_.c:markdown.h \ |
| 1182 | markdown_html_.c:markdown_html.h \ |
| 1183 | md5_.c:md5.h \ |
| 1184 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -116,10 +116,11 @@ | |
| 116 | json_timeline_.c \ |
| 117 | json_user_.c \ |
| 118 | json_wiki_.c \ |
| 119 | leaf_.c \ |
| 120 | login_.c \ |
| 121 | lookslike_.c \ |
| 122 | main_.c \ |
| 123 | manifest_.c \ |
| 124 | markdown_.c \ |
| 125 | markdown_html_.c \ |
| 126 | md5_.c \ |
| @@ -224,10 +225,11 @@ | |
| 225 | $(OX)\json_timeline$O \ |
| 226 | $(OX)\json_user$O \ |
| 227 | $(OX)\json_wiki$O \ |
| 228 | $(OX)\leaf$O \ |
| 229 | $(OX)\login$O \ |
| 230 | $(OX)\lookslike$O \ |
| 231 | $(OX)\main$O \ |
| 232 | $(OX)\manifest$O \ |
| 233 | $(OX)\markdown$O \ |
| 234 | $(OX)\markdown_html$O \ |
| 235 | $(OX)\md5$O \ |
| @@ -350,10 +352,11 @@ | |
| 352 | echo $(OX)\json_timeline.obj >> $@ |
| 353 | echo $(OX)\json_user.obj >> $@ |
| 354 | echo $(OX)\json_wiki.obj >> $@ |
| 355 | echo $(OX)\leaf.obj >> $@ |
| 356 | echo $(OX)\login.obj >> $@ |
| 357 | echo $(OX)\lookslike.obj >> $@ |
| 358 | echo $(OX)\main.obj >> $@ |
| 359 | echo $(OX)\manifest.obj >> $@ |
| 360 | echo $(OX)\markdown.obj >> $@ |
| 361 | echo $(OX)\markdown_html.obj >> $@ |
| 362 | echo $(OX)\md5.obj >> $@ |
| @@ -809,10 +812,16 @@ | |
| 812 | $(OX)\login$O : login_.c login.h |
| 813 | $(TCC) /Fo$@ -c login_.c |
| 814 | |
| 815 | login_.c : $(SRCDIR)\login.c |
| 816 | translate$E $** > $@ |
| 817 | |
| 818 | $(OX)\lookslike$O : lookslike_.c lookslike.h |
| 819 | $(TCC) /Fo$@ -c lookslike_.c |
| 820 | |
| 821 | lookslike_.c : $(SRCDIR)\lookslike.c |
| 822 | translate$E $** > $@ |
| 823 | |
| 824 | $(OX)\main$O : main_.c main.h |
| 825 | $(TCC) /Fo$@ -c main_.c |
| 826 | |
| 827 | main_.c : $(SRCDIR)\main.c |
| @@ -1174,10 +1183,11 @@ | |
| 1183 | json_timeline_.c:json_timeline.h \ |
| 1184 | json_user_.c:json_user.h \ |
| 1185 | json_wiki_.c:json_wiki.h \ |
| 1186 | leaf_.c:leaf.h \ |
| 1187 | login_.c:login.h \ |
| 1188 | lookslike_.c:lookslike.h \ |
| 1189 | main_.c:main.h \ |
| 1190 | manifest_.c:manifest.h \ |
| 1191 | markdown_.c:markdown.h \ |
| 1192 | markdown_html_.c:markdown_html.h \ |
| 1193 | md5_.c:md5.h \ |
| 1194 |