Fossil SCM
Merge in the new "system" command. It is not complete, but it is harmless and out of the way so we might as well continue development on trunk.
Commit
ff7fe39421d96488b156d1bb7c5ebad0f285b8c8bf54ecf642f1635f1f9c276c
Parent
015101838341ce1…
12 files changed
-10
+1
-1
+1
-1
+80
-15
+12
+1
-1
-24
+391
+1
+10
-4
+12
+10
-10
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -2962,20 +2962,10 @@ | ||
| 2962 | 2962 | pTm->tm_year+1900, pTm->tm_mon+1, pTm->tm_mday, |
| 2963 | 2963 | pTm->tm_hour, pTm->tm_min, pTm->tm_sec); |
| 2964 | 2964 | } |
| 2965 | 2965 | } |
| 2966 | 2966 | |
| 2967 | -/* | |
| 2968 | -** COMMAND: test-date | |
| 2969 | -** | |
| 2970 | -** Show the current date and time in both RFC822 and ISO8601. | |
| 2971 | -*/ | |
| 2972 | -void test_date(void){ | |
| 2973 | - fossil_print("%z = ", cgi_iso8601_datestamp()); | |
| 2974 | - fossil_print("%z\n", cgi_rfc822_datestamp(time(0))); | |
| 2975 | -} | |
| 2976 | - | |
| 2977 | 2967 | /* |
| 2978 | 2968 | ** Parse an RFC822-formatted timestamp as we'd expect from HTTP and return |
| 2979 | 2969 | ** a Unix epoch time. <= zero is returned on failure. |
| 2980 | 2970 | ** |
| 2981 | 2971 | ** Note that this won't handle all the _allowed_ HTTP formats, just the |
| 2982 | 2972 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -2962,20 +2962,10 @@ | |
| 2962 | pTm->tm_year+1900, pTm->tm_mon+1, pTm->tm_mday, |
| 2963 | pTm->tm_hour, pTm->tm_min, pTm->tm_sec); |
| 2964 | } |
| 2965 | } |
| 2966 | |
| 2967 | /* |
| 2968 | ** COMMAND: test-date |
| 2969 | ** |
| 2970 | ** Show the current date and time in both RFC822 and ISO8601. |
| 2971 | */ |
| 2972 | void test_date(void){ |
| 2973 | fossil_print("%z = ", cgi_iso8601_datestamp()); |
| 2974 | fossil_print("%z\n", cgi_rfc822_datestamp(time(0))); |
| 2975 | } |
| 2976 | |
| 2977 | /* |
| 2978 | ** Parse an RFC822-formatted timestamp as we'd expect from HTTP and return |
| 2979 | ** a Unix epoch time. <= zero is returned on failure. |
| 2980 | ** |
| 2981 | ** Note that this won't handle all the _allowed_ HTTP formats, just the |
| 2982 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -2962,20 +2962,10 @@ | |
| 2962 | pTm->tm_year+1900, pTm->tm_mon+1, pTm->tm_mday, |
| 2963 | pTm->tm_hour, pTm->tm_min, pTm->tm_sec); |
| 2964 | } |
| 2965 | } |
| 2966 | |
| 2967 | /* |
| 2968 | ** Parse an RFC822-formatted timestamp as we'd expect from HTTP and return |
| 2969 | ** a Unix epoch time. <= zero is returned on failure. |
| 2970 | ** |
| 2971 | ** Note that this won't handle all the _allowed_ HTTP formats, just the |
| 2972 |
+1
-1
| --- src/checkout.c | ||
| +++ src/checkout.c | ||
| @@ -546,11 +546,11 @@ | ||
| 546 | 546 | if( file_isdir(zSqlArchive, ExtFILE)>0 ){ |
| 547 | 547 | fossil_fatal("file already exists: \"%s\"", zSqlArchive); |
| 548 | 548 | } |
| 549 | 549 | }else if( file_isdir(zDest, ExtFILE)>0 ){ |
| 550 | 550 | if( fossil_strcmp(zDest,".")==0 ){ |
| 551 | - if( file_directory_size(zDest,0,1) ){ | |
| 551 | + if( file_directory_list(zDest,0,1,1,0) ){ | |
| 552 | 552 | fossil_fatal("current directory is not empty"); |
| 553 | 553 | } |
| 554 | 554 | }else{ |
| 555 | 555 | fossil_fatal("\"%s\" already exists", zDest); |
| 556 | 556 | } |
| 557 | 557 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -546,11 +546,11 @@ | |
| 546 | if( file_isdir(zSqlArchive, ExtFILE)>0 ){ |
| 547 | fossil_fatal("file already exists: \"%s\"", zSqlArchive); |
| 548 | } |
| 549 | }else if( file_isdir(zDest, ExtFILE)>0 ){ |
| 550 | if( fossil_strcmp(zDest,".")==0 ){ |
| 551 | if( file_directory_size(zDest,0,1) ){ |
| 552 | fossil_fatal("current directory is not empty"); |
| 553 | } |
| 554 | }else{ |
| 555 | fossil_fatal("\"%s\" already exists", zDest); |
| 556 | } |
| 557 |
| --- src/checkout.c | |
| +++ src/checkout.c | |
| @@ -546,11 +546,11 @@ | |
| 546 | if( file_isdir(zSqlArchive, ExtFILE)>0 ){ |
| 547 | fossil_fatal("file already exists: \"%s\"", zSqlArchive); |
| 548 | } |
| 549 | }else if( file_isdir(zDest, ExtFILE)>0 ){ |
| 550 | if( fossil_strcmp(zDest,".")==0 ){ |
| 551 | if( file_directory_list(zDest,0,1,1,0) ){ |
| 552 | fossil_fatal("current directory is not empty"); |
| 553 | } |
| 554 | }else{ |
| 555 | fossil_fatal("\"%s\" already exists", zDest); |
| 556 | } |
| 557 |
M
src/db.c
+1
-1
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -4339,11 +4339,11 @@ | ||
| 4339 | 4339 | fossil_fatal("unable to make %s the working directory", zWorkDir); |
| 4340 | 4340 | } |
| 4341 | 4341 | } |
| 4342 | 4342 | if( keepFlag==0 |
| 4343 | 4343 | && bForce==0 |
| 4344 | - && (nLocal = file_directory_size(".", 0, 1))>0 | |
| 4344 | + && (nLocal = file_directory_list(".", 0, 1, 2, 0))>0 | |
| 4345 | 4345 | && (nLocal>1 || isUri || !file_in_cwd(zRepo)) |
| 4346 | 4346 | ){ |
| 4347 | 4347 | fossil_fatal("directory %s is not empty\n" |
| 4348 | 4348 | "use the -f (--force) option to override\n" |
| 4349 | 4349 | "or the -k (--keep) option to keep local files unchanged", |
| 4350 | 4350 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -4339,11 +4339,11 @@ | |
| 4339 | fossil_fatal("unable to make %s the working directory", zWorkDir); |
| 4340 | } |
| 4341 | } |
| 4342 | if( keepFlag==0 |
| 4343 | && bForce==0 |
| 4344 | && (nLocal = file_directory_size(".", 0, 1))>0 |
| 4345 | && (nLocal>1 || isUri || !file_in_cwd(zRepo)) |
| 4346 | ){ |
| 4347 | fossil_fatal("directory %s is not empty\n" |
| 4348 | "use the -f (--force) option to override\n" |
| 4349 | "or the -k (--keep) option to keep local files unchanged", |
| 4350 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -4339,11 +4339,11 @@ | |
| 4339 | fossil_fatal("unable to make %s the working directory", zWorkDir); |
| 4340 | } |
| 4341 | } |
| 4342 | if( keepFlag==0 |
| 4343 | && bForce==0 |
| 4344 | && (nLocal = file_directory_list(".", 0, 1, 2, 0))>0 |
| 4345 | && (nLocal>1 || isUri || !file_in_cwd(zRepo)) |
| 4346 | ){ |
| 4347 | fossil_fatal("directory %s is not empty\n" |
| 4348 | "use the -f (--force) option to override\n" |
| 4349 | "or the -k (--keep) option to keep local files unchanged", |
| 4350 |
+80
-15
| --- src/file.c | ||
| +++ src/file.c | ||
| @@ -2543,69 +2543,134 @@ | ||
| 2543 | 2543 | #endif |
| 2544 | 2544 | return z; |
| 2545 | 2545 | } |
| 2546 | 2546 | |
| 2547 | 2547 | /* |
| 2548 | -** Count the number of objects (files and subdirectories) in a given | |
| 2549 | -** directory. Return the count. Return -1 if the object is not a | |
| 2550 | -** directory. | |
| 2548 | +** Find the name of all objects (files and subdirectories) in a given | |
| 2549 | +** directory that match a GLOB pattern. If zGlob is NULL, then return | |
| 2550 | +** all objects. The list is written into *pazList and the number of | |
| 2551 | +** entries is returned. If pazList is NULL, then only the count is | |
| 2552 | +** returned. | |
| 2553 | +** | |
| 2554 | +** If zDir is not a directory, *pazList is unchanged and -1 is returned. | |
| 2555 | +** | |
| 2556 | +** Memory used to old *pazList should be freed using a subsequent call | |
| 2557 | +** to file_directory_list_free(). | |
| 2551 | 2558 | ** |
| 2552 | 2559 | ** This routine never counts the two "." and ".." special directory |
| 2553 | 2560 | ** entries, even if the provided glob would match them. |
| 2554 | 2561 | */ |
| 2555 | -int file_directory_size(const char *zDir, const char *zGlob, int omitDotFiles){ | |
| 2562 | +int file_directory_list( | |
| 2563 | + const char *zDir, /* Directory to get a listing of */ | |
| 2564 | + const char *zGlob, /* Only list objects matching this pattern */ | |
| 2565 | + int omitDotFiles, /* Omit files that begin with "." if true */ | |
| 2566 | + int nLimit, /* Find at most this many files. 0 means "all" */ | |
| 2567 | + char ***pazList /* OUT: Write the list here, if not NULL */ | |
| 2568 | +){ | |
| 2556 | 2569 | void *zNative; |
| 2557 | 2570 | DIR *d; |
| 2558 | 2571 | int n = -1; |
| 2572 | + int nAlloc = 0; | |
| 2573 | + if( pazList ) *pazList = 0; | |
| 2559 | 2574 | zNative = fossil_utf8_to_path(zDir,1); |
| 2560 | 2575 | d = opendir(zNative); |
| 2561 | 2576 | if( d ){ |
| 2562 | 2577 | struct dirent *pEntry; |
| 2563 | 2578 | n = 0; |
| 2564 | 2579 | while( (pEntry=readdir(d))!=0 ){ |
| 2580 | + char *zUtf8 = 0; | |
| 2565 | 2581 | if( pEntry->d_name[0]==0 ) continue; |
| 2566 | 2582 | if( pEntry->d_name[0]=='.' && |
| 2567 | 2583 | (omitDotFiles |
| 2568 | 2584 | /* Skip the special "." and ".." entries. */ |
| 2569 | 2585 | || pEntry->d_name[1]==0 |
| 2570 | 2586 | || (pEntry->d_name[1]=='.' && pEntry->d_name[2]==0))){ |
| 2571 | 2587 | continue; |
| 2572 | 2588 | } |
| 2573 | 2589 | if( zGlob ){ |
| 2574 | - char *zUtf8 = fossil_path_to_utf8(pEntry->d_name); | |
| 2575 | - int rc = sqlite3_strglob(zGlob, zUtf8); | |
| 2576 | - fossil_path_free(zUtf8); | |
| 2577 | - if( rc ) continue; | |
| 2590 | + int rc; | |
| 2591 | + zUtf8 = fossil_path_to_utf8(pEntry->d_name); | |
| 2592 | + rc = sqlite3_strglob(zGlob, zUtf8); | |
| 2593 | + if( rc ){ | |
| 2594 | + fossil_path_free(zUtf8); | |
| 2595 | + continue; | |
| 2596 | + } | |
| 2597 | + } | |
| 2598 | + if( pazList ){ | |
| 2599 | + if( n+1 >= nAlloc ){ | |
| 2600 | + nAlloc = 100 + n; | |
| 2601 | + *pazList = fossil_realloc(*pazList, nAlloc*sizeof(char*)); | |
| 2602 | + } | |
| 2603 | + if( zUtf8==0 ){ | |
| 2604 | + zUtf8 = fossil_path_to_utf8(pEntry->d_name); | |
| 2605 | + } | |
| 2606 | + (*pazList)[n] = fossil_strdup(zUtf8); | |
| 2578 | 2607 | } |
| 2579 | 2608 | n++; |
| 2609 | + if( zUtf8 ) fossil_path_free(zUtf8); | |
| 2610 | + if( nLimit>0 && n>=nLimit ) break; | |
| 2580 | 2611 | } |
| 2581 | 2612 | closedir(d); |
| 2582 | 2613 | } |
| 2583 | 2614 | fossil_path_free(zNative); |
| 2615 | + if( pazList ) (*pazList)[n] = 0; | |
| 2584 | 2616 | return n; |
| 2585 | 2617 | } |
| 2618 | +void file_directory_list_free(char **azList){ | |
| 2619 | + char **az; | |
| 2620 | + if( azList==0 ) return; | |
| 2621 | + az = azList; | |
| 2622 | + while( az[0] ){ | |
| 2623 | + fossil_free(az[0]); | |
| 2624 | + az++; | |
| 2625 | + } | |
| 2626 | + fossil_free(azList); | |
| 2627 | +} | |
| 2586 | 2628 | |
| 2587 | 2629 | /* |
| 2588 | -** COMMAND: test-dir-size | |
| 2630 | +** COMMAND: test-dir-list | |
| 2631 | +** | |
| 2632 | +** Usage: %fossil test-dir-list NAME [GLOB] [OPTIONS] | |
| 2633 | +** | |
| 2634 | +** Return the names of up to N objects in the directory NAME. If GLOB is | |
| 2635 | +** provided, then only show objects that match the GLOB pattern. | |
| 2636 | +** | |
| 2637 | +** This command is intended for testing the file_directory_list() function. | |
| 2589 | 2638 | ** |
| 2590 | -** Usage: %fossil test-dir-size NAME [GLOB] [--nodots] | |
| 2639 | +** Options: | |
| 2591 | 2640 | ** |
| 2592 | -** Return the number of objects in the directory NAME. If GLOB is | |
| 2593 | -** provided, then only count objects that match the GLOB pattern. | |
| 2594 | -** if --nodots is specified, omit files that begin with ".". | |
| 2641 | +** --count Only count files, do not list them. | |
| 2642 | +** --limit N Only show the first N files seen | |
| 2643 | +** --nodots Do not show or count files that start with '.' | |
| 2595 | 2644 | */ |
| 2596 | -void test_dir_size_cmd(void){ | |
| 2645 | +void test_dir_list_cmd(void){ | |
| 2597 | 2646 | int omitDotFiles = find_option("nodots",0,0)!=0; |
| 2647 | + const char *zLimit = find_option("limit",0,1); | |
| 2648 | + int countOnly = find_option("count",0,0)!=0; | |
| 2598 | 2649 | const char *zGlob; |
| 2599 | 2650 | const char *zDir; |
| 2651 | + char **azList = 0; | |
| 2652 | + int nList; | |
| 2653 | + | |
| 2600 | 2654 | verify_all_options(); |
| 2601 | 2655 | if( g.argc!=3 && g.argc!=4 ){ |
| 2602 | 2656 | usage("NAME [GLOB] [-nodots]"); |
| 2603 | 2657 | } |
| 2604 | 2658 | zDir = g.argv[2]; |
| 2605 | 2659 | zGlob = g.argc==4 ? g.argv[3] : 0; |
| 2606 | - fossil_print("%d\n", file_directory_size(zDir, zGlob, omitDotFiles)); | |
| 2660 | + nList = file_directory_list(zDir, zGlob, omitDotFiles, | |
| 2661 | + zLimit ? atoi(zLimit) : 0, | |
| 2662 | + countOnly ? 0 : &azList); | |
| 2663 | + if( countOnly ){ | |
| 2664 | + fossil_print("%d\n", nList); | |
| 2665 | + }else{ | |
| 2666 | + int i; | |
| 2667 | + for(i=0; i<nList; i++){ | |
| 2668 | + fossil_print(" %s\n", azList[i]); | |
| 2669 | + } | |
| 2670 | + } | |
| 2671 | + file_directory_list_free(azList); | |
| 2607 | 2672 | } |
| 2608 | 2673 | |
| 2609 | 2674 | /* |
| 2610 | 2675 | ** Internal helper for touch_cmd(). zAbsName must be resolvable as-is |
| 2611 | 2676 | ** to an existing file - this function does not expand/normalize |
| 2612 | 2677 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -2543,69 +2543,134 @@ | |
| 2543 | #endif |
| 2544 | return z; |
| 2545 | } |
| 2546 | |
| 2547 | /* |
| 2548 | ** Count the number of objects (files and subdirectories) in a given |
| 2549 | ** directory. Return the count. Return -1 if the object is not a |
| 2550 | ** directory. |
| 2551 | ** |
| 2552 | ** This routine never counts the two "." and ".." special directory |
| 2553 | ** entries, even if the provided glob would match them. |
| 2554 | */ |
| 2555 | int file_directory_size(const char *zDir, const char *zGlob, int omitDotFiles){ |
| 2556 | void *zNative; |
| 2557 | DIR *d; |
| 2558 | int n = -1; |
| 2559 | zNative = fossil_utf8_to_path(zDir,1); |
| 2560 | d = opendir(zNative); |
| 2561 | if( d ){ |
| 2562 | struct dirent *pEntry; |
| 2563 | n = 0; |
| 2564 | while( (pEntry=readdir(d))!=0 ){ |
| 2565 | if( pEntry->d_name[0]==0 ) continue; |
| 2566 | if( pEntry->d_name[0]=='.' && |
| 2567 | (omitDotFiles |
| 2568 | /* Skip the special "." and ".." entries. */ |
| 2569 | || pEntry->d_name[1]==0 |
| 2570 | || (pEntry->d_name[1]=='.' && pEntry->d_name[2]==0))){ |
| 2571 | continue; |
| 2572 | } |
| 2573 | if( zGlob ){ |
| 2574 | char *zUtf8 = fossil_path_to_utf8(pEntry->d_name); |
| 2575 | int rc = sqlite3_strglob(zGlob, zUtf8); |
| 2576 | fossil_path_free(zUtf8); |
| 2577 | if( rc ) continue; |
| 2578 | } |
| 2579 | n++; |
| 2580 | } |
| 2581 | closedir(d); |
| 2582 | } |
| 2583 | fossil_path_free(zNative); |
| 2584 | return n; |
| 2585 | } |
| 2586 | |
| 2587 | /* |
| 2588 | ** COMMAND: test-dir-size |
| 2589 | ** |
| 2590 | ** Usage: %fossil test-dir-size NAME [GLOB] [--nodots] |
| 2591 | ** |
| 2592 | ** Return the number of objects in the directory NAME. If GLOB is |
| 2593 | ** provided, then only count objects that match the GLOB pattern. |
| 2594 | ** if --nodots is specified, omit files that begin with ".". |
| 2595 | */ |
| 2596 | void test_dir_size_cmd(void){ |
| 2597 | int omitDotFiles = find_option("nodots",0,0)!=0; |
| 2598 | const char *zGlob; |
| 2599 | const char *zDir; |
| 2600 | verify_all_options(); |
| 2601 | if( g.argc!=3 && g.argc!=4 ){ |
| 2602 | usage("NAME [GLOB] [-nodots]"); |
| 2603 | } |
| 2604 | zDir = g.argv[2]; |
| 2605 | zGlob = g.argc==4 ? g.argv[3] : 0; |
| 2606 | fossil_print("%d\n", file_directory_size(zDir, zGlob, omitDotFiles)); |
| 2607 | } |
| 2608 | |
| 2609 | /* |
| 2610 | ** Internal helper for touch_cmd(). zAbsName must be resolvable as-is |
| 2611 | ** to an existing file - this function does not expand/normalize |
| 2612 |
| --- src/file.c | |
| +++ src/file.c | |
| @@ -2543,69 +2543,134 @@ | |
| 2543 | #endif |
| 2544 | return z; |
| 2545 | } |
| 2546 | |
| 2547 | /* |
| 2548 | ** Find the name of all objects (files and subdirectories) in a given |
| 2549 | ** directory that match a GLOB pattern. If zGlob is NULL, then return |
| 2550 | ** all objects. The list is written into *pazList and the number of |
| 2551 | ** entries is returned. If pazList is NULL, then only the count is |
| 2552 | ** returned. |
| 2553 | ** |
| 2554 | ** If zDir is not a directory, *pazList is unchanged and -1 is returned. |
| 2555 | ** |
| 2556 | ** Memory used to old *pazList should be freed using a subsequent call |
| 2557 | ** to file_directory_list_free(). |
| 2558 | ** |
| 2559 | ** This routine never counts the two "." and ".." special directory |
| 2560 | ** entries, even if the provided glob would match them. |
| 2561 | */ |
| 2562 | int file_directory_list( |
| 2563 | const char *zDir, /* Directory to get a listing of */ |
| 2564 | const char *zGlob, /* Only list objects matching this pattern */ |
| 2565 | int omitDotFiles, /* Omit files that begin with "." if true */ |
| 2566 | int nLimit, /* Find at most this many files. 0 means "all" */ |
| 2567 | char ***pazList /* OUT: Write the list here, if not NULL */ |
| 2568 | ){ |
| 2569 | void *zNative; |
| 2570 | DIR *d; |
| 2571 | int n = -1; |
| 2572 | int nAlloc = 0; |
| 2573 | if( pazList ) *pazList = 0; |
| 2574 | zNative = fossil_utf8_to_path(zDir,1); |
| 2575 | d = opendir(zNative); |
| 2576 | if( d ){ |
| 2577 | struct dirent *pEntry; |
| 2578 | n = 0; |
| 2579 | while( (pEntry=readdir(d))!=0 ){ |
| 2580 | char *zUtf8 = 0; |
| 2581 | if( pEntry->d_name[0]==0 ) continue; |
| 2582 | if( pEntry->d_name[0]=='.' && |
| 2583 | (omitDotFiles |
| 2584 | /* Skip the special "." and ".." entries. */ |
| 2585 | || pEntry->d_name[1]==0 |
| 2586 | || (pEntry->d_name[1]=='.' && pEntry->d_name[2]==0))){ |
| 2587 | continue; |
| 2588 | } |
| 2589 | if( zGlob ){ |
| 2590 | int rc; |
| 2591 | zUtf8 = fossil_path_to_utf8(pEntry->d_name); |
| 2592 | rc = sqlite3_strglob(zGlob, zUtf8); |
| 2593 | if( rc ){ |
| 2594 | fossil_path_free(zUtf8); |
| 2595 | continue; |
| 2596 | } |
| 2597 | } |
| 2598 | if( pazList ){ |
| 2599 | if( n+1 >= nAlloc ){ |
| 2600 | nAlloc = 100 + n; |
| 2601 | *pazList = fossil_realloc(*pazList, nAlloc*sizeof(char*)); |
| 2602 | } |
| 2603 | if( zUtf8==0 ){ |
| 2604 | zUtf8 = fossil_path_to_utf8(pEntry->d_name); |
| 2605 | } |
| 2606 | (*pazList)[n] = fossil_strdup(zUtf8); |
| 2607 | } |
| 2608 | n++; |
| 2609 | if( zUtf8 ) fossil_path_free(zUtf8); |
| 2610 | if( nLimit>0 && n>=nLimit ) break; |
| 2611 | } |
| 2612 | closedir(d); |
| 2613 | } |
| 2614 | fossil_path_free(zNative); |
| 2615 | if( pazList ) (*pazList)[n] = 0; |
| 2616 | return n; |
| 2617 | } |
| 2618 | void file_directory_list_free(char **azList){ |
| 2619 | char **az; |
| 2620 | if( azList==0 ) return; |
| 2621 | az = azList; |
| 2622 | while( az[0] ){ |
| 2623 | fossil_free(az[0]); |
| 2624 | az++; |
| 2625 | } |
| 2626 | fossil_free(azList); |
| 2627 | } |
| 2628 | |
| 2629 | /* |
| 2630 | ** COMMAND: test-dir-list |
| 2631 | ** |
| 2632 | ** Usage: %fossil test-dir-list NAME [GLOB] [OPTIONS] |
| 2633 | ** |
| 2634 | ** Return the names of up to N objects in the directory NAME. If GLOB is |
| 2635 | ** provided, then only show objects that match the GLOB pattern. |
| 2636 | ** |
| 2637 | ** This command is intended for testing the file_directory_list() function. |
| 2638 | ** |
| 2639 | ** Options: |
| 2640 | ** |
| 2641 | ** --count Only count files, do not list them. |
| 2642 | ** --limit N Only show the first N files seen |
| 2643 | ** --nodots Do not show or count files that start with '.' |
| 2644 | */ |
| 2645 | void test_dir_list_cmd(void){ |
| 2646 | int omitDotFiles = find_option("nodots",0,0)!=0; |
| 2647 | const char *zLimit = find_option("limit",0,1); |
| 2648 | int countOnly = find_option("count",0,0)!=0; |
| 2649 | const char *zGlob; |
| 2650 | const char *zDir; |
| 2651 | char **azList = 0; |
| 2652 | int nList; |
| 2653 | |
| 2654 | verify_all_options(); |
| 2655 | if( g.argc!=3 && g.argc!=4 ){ |
| 2656 | usage("NAME [GLOB] [-nodots]"); |
| 2657 | } |
| 2658 | zDir = g.argv[2]; |
| 2659 | zGlob = g.argc==4 ? g.argv[3] : 0; |
| 2660 | nList = file_directory_list(zDir, zGlob, omitDotFiles, |
| 2661 | zLimit ? atoi(zLimit) : 0, |
| 2662 | countOnly ? 0 : &azList); |
| 2663 | if( countOnly ){ |
| 2664 | fossil_print("%d\n", nList); |
| 2665 | }else{ |
| 2666 | int i; |
| 2667 | for(i=0; i<nList; i++){ |
| 2668 | fossil_print(" %s\n", azList[i]); |
| 2669 | } |
| 2670 | } |
| 2671 | file_directory_list_free(azList); |
| 2672 | } |
| 2673 | |
| 2674 | /* |
| 2675 | ** Internal helper for touch_cmd(). zAbsName must be resolvable as-is |
| 2676 | ** to an existing file - this function does not expand/normalize |
| 2677 |
+12
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -162,10 +162,11 @@ | ||
| 162 | 162 | $(SRCDIR)/wikiformat.c \ |
| 163 | 163 | $(SRCDIR)/winfile.c \ |
| 164 | 164 | $(SRCDIR)/winhttp.c \ |
| 165 | 165 | $(SRCDIR)/xfer.c \ |
| 166 | 166 | $(SRCDIR)/xfersetup.c \ |
| 167 | + $(SRCDIR)/xsystem.c \ | |
| 167 | 168 | $(SRCDIR)/zip.c |
| 168 | 169 | |
| 169 | 170 | EXTRA_FILES = \ |
| 170 | 171 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 171 | 172 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -430,10 +431,11 @@ | ||
| 430 | 431 | $(OBJDIR)/wikiformat_.c \ |
| 431 | 432 | $(OBJDIR)/winfile_.c \ |
| 432 | 433 | $(OBJDIR)/winhttp_.c \ |
| 433 | 434 | $(OBJDIR)/xfer_.c \ |
| 434 | 435 | $(OBJDIR)/xfersetup_.c \ |
| 436 | + $(OBJDIR)/xsystem_.c \ | |
| 435 | 437 | $(OBJDIR)/zip_.c |
| 436 | 438 | |
| 437 | 439 | OBJ = \ |
| 438 | 440 | $(OBJDIR)/add.o \ |
| 439 | 441 | $(OBJDIR)/ajax.o \ |
| @@ -581,10 +583,11 @@ | ||
| 581 | 583 | $(OBJDIR)/wikiformat.o \ |
| 582 | 584 | $(OBJDIR)/winfile.o \ |
| 583 | 585 | $(OBJDIR)/winhttp.o \ |
| 584 | 586 | $(OBJDIR)/xfer.o \ |
| 585 | 587 | $(OBJDIR)/xfersetup.o \ |
| 588 | + $(OBJDIR)/xsystem.o \ | |
| 586 | 589 | $(OBJDIR)/zip.o |
| 587 | 590 | all: $(APPNAME) |
| 588 | 591 | |
| 589 | 592 | install: all |
| 590 | 593 | mkdir -p $(INSTALLDIR) |
| @@ -925,10 +928,11 @@ | ||
| 925 | 928 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 926 | 929 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 927 | 930 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 928 | 931 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 929 | 932 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 933 | + $(OBJDIR)/xsystem_.c:$(OBJDIR)/xsystem.h \ | |
| 930 | 934 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 931 | 935 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 932 | 936 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 933 | 937 | $(SRCDIR)/th.h \ |
| 934 | 938 | $(OBJDIR)/VERSION.h |
| @@ -2117,10 +2121,18 @@ | ||
| 2117 | 2121 | |
| 2118 | 2122 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2119 | 2123 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2120 | 2124 | |
| 2121 | 2125 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2126 | + | |
| 2127 | +$(OBJDIR)/xsystem_.c: $(SRCDIR)/xsystem.c $(OBJDIR)/translate | |
| 2128 | + $(OBJDIR)/translate $(SRCDIR)/xsystem.c >$@ | |
| 2129 | + | |
| 2130 | +$(OBJDIR)/xsystem.o: $(OBJDIR)/xsystem_.c $(OBJDIR)/xsystem.h $(SRCDIR)/config.h | |
| 2131 | + $(XTCC) -o $(OBJDIR)/xsystem.o -c $(OBJDIR)/xsystem_.c | |
| 2132 | + | |
| 2133 | +$(OBJDIR)/xsystem.h: $(OBJDIR)/headers | |
| 2122 | 2134 | |
| 2123 | 2135 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(OBJDIR)/translate |
| 2124 | 2136 | $(OBJDIR)/translate $(SRCDIR)/zip.c >$@ |
| 2125 | 2137 | |
| 2126 | 2138 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2127 | 2139 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -162,10 +162,11 @@ | |
| 162 | $(SRCDIR)/wikiformat.c \ |
| 163 | $(SRCDIR)/winfile.c \ |
| 164 | $(SRCDIR)/winhttp.c \ |
| 165 | $(SRCDIR)/xfer.c \ |
| 166 | $(SRCDIR)/xfersetup.c \ |
| 167 | $(SRCDIR)/zip.c |
| 168 | |
| 169 | EXTRA_FILES = \ |
| 170 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 171 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -430,10 +431,11 @@ | |
| 430 | $(OBJDIR)/wikiformat_.c \ |
| 431 | $(OBJDIR)/winfile_.c \ |
| 432 | $(OBJDIR)/winhttp_.c \ |
| 433 | $(OBJDIR)/xfer_.c \ |
| 434 | $(OBJDIR)/xfersetup_.c \ |
| 435 | $(OBJDIR)/zip_.c |
| 436 | |
| 437 | OBJ = \ |
| 438 | $(OBJDIR)/add.o \ |
| 439 | $(OBJDIR)/ajax.o \ |
| @@ -581,10 +583,11 @@ | |
| 581 | $(OBJDIR)/wikiformat.o \ |
| 582 | $(OBJDIR)/winfile.o \ |
| 583 | $(OBJDIR)/winhttp.o \ |
| 584 | $(OBJDIR)/xfer.o \ |
| 585 | $(OBJDIR)/xfersetup.o \ |
| 586 | $(OBJDIR)/zip.o |
| 587 | all: $(APPNAME) |
| 588 | |
| 589 | install: all |
| 590 | mkdir -p $(INSTALLDIR) |
| @@ -925,10 +928,11 @@ | |
| 925 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 926 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 927 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 928 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 929 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 930 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 931 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 932 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 933 | $(SRCDIR)/th.h \ |
| 934 | $(OBJDIR)/VERSION.h |
| @@ -2117,10 +2121,18 @@ | |
| 2117 | |
| 2118 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2119 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2120 | |
| 2121 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2122 | |
| 2123 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(OBJDIR)/translate |
| 2124 | $(OBJDIR)/translate $(SRCDIR)/zip.c >$@ |
| 2125 | |
| 2126 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2127 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -162,10 +162,11 @@ | |
| 162 | $(SRCDIR)/wikiformat.c \ |
| 163 | $(SRCDIR)/winfile.c \ |
| 164 | $(SRCDIR)/winhttp.c \ |
| 165 | $(SRCDIR)/xfer.c \ |
| 166 | $(SRCDIR)/xfersetup.c \ |
| 167 | $(SRCDIR)/xsystem.c \ |
| 168 | $(SRCDIR)/zip.c |
| 169 | |
| 170 | EXTRA_FILES = \ |
| 171 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 172 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -430,10 +431,11 @@ | |
| 431 | $(OBJDIR)/wikiformat_.c \ |
| 432 | $(OBJDIR)/winfile_.c \ |
| 433 | $(OBJDIR)/winhttp_.c \ |
| 434 | $(OBJDIR)/xfer_.c \ |
| 435 | $(OBJDIR)/xfersetup_.c \ |
| 436 | $(OBJDIR)/xsystem_.c \ |
| 437 | $(OBJDIR)/zip_.c |
| 438 | |
| 439 | OBJ = \ |
| 440 | $(OBJDIR)/add.o \ |
| 441 | $(OBJDIR)/ajax.o \ |
| @@ -581,10 +583,11 @@ | |
| 583 | $(OBJDIR)/wikiformat.o \ |
| 584 | $(OBJDIR)/winfile.o \ |
| 585 | $(OBJDIR)/winhttp.o \ |
| 586 | $(OBJDIR)/xfer.o \ |
| 587 | $(OBJDIR)/xfersetup.o \ |
| 588 | $(OBJDIR)/xsystem.o \ |
| 589 | $(OBJDIR)/zip.o |
| 590 | all: $(APPNAME) |
| 591 | |
| 592 | install: all |
| 593 | mkdir -p $(INSTALLDIR) |
| @@ -925,10 +928,11 @@ | |
| 928 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 929 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 930 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 931 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 932 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 933 | $(OBJDIR)/xsystem_.c:$(OBJDIR)/xsystem.h \ |
| 934 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 935 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 936 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 937 | $(SRCDIR)/th.h \ |
| 938 | $(OBJDIR)/VERSION.h |
| @@ -2117,10 +2121,18 @@ | |
| 2121 | |
| 2122 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2123 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2124 | |
| 2125 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2126 | |
| 2127 | $(OBJDIR)/xsystem_.c: $(SRCDIR)/xsystem.c $(OBJDIR)/translate |
| 2128 | $(OBJDIR)/translate $(SRCDIR)/xsystem.c >$@ |
| 2129 | |
| 2130 | $(OBJDIR)/xsystem.o: $(OBJDIR)/xsystem_.c $(OBJDIR)/xsystem.h $(SRCDIR)/config.h |
| 2131 | $(XTCC) -o $(OBJDIR)/xsystem.o -c $(OBJDIR)/xsystem_.c |
| 2132 | |
| 2133 | $(OBJDIR)/xsystem.h: $(OBJDIR)/headers |
| 2134 | |
| 2135 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(OBJDIR)/translate |
| 2136 | $(OBJDIR)/translate $(SRCDIR)/zip.c >$@ |
| 2137 | |
| 2138 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2139 |
+1
-1
| --- src/stat.c | ||
| +++ src/stat.c | ||
| @@ -94,11 +94,11 @@ | ||
| 94 | 94 | }else |
| 95 | 95 | if( fossil_strcmp(zDest,"dir")==0 |
| 96 | 96 | && (zDir = db_get("email-send-dir",0))!=0 |
| 97 | 97 | ){ |
| 98 | 98 | @ Written to files in "%h(zDir)" |
| 99 | - @ (%,d(file_directory_size(zDir,0,1)) messages) | |
| 99 | + @ (%,d(file_directory_list(zDir,0,1,0,0)) messages) | |
| 100 | 100 | }else |
| 101 | 101 | if( fossil_strcmp(zDest,"relay")==0 |
| 102 | 102 | && (zRelay = db_get("email-send-relayhost",0))!=0 |
| 103 | 103 | ){ |
| 104 | 104 | @ Relay to %h(zRelay) using SMTP |
| 105 | 105 |
| --- src/stat.c | |
| +++ src/stat.c | |
| @@ -94,11 +94,11 @@ | |
| 94 | }else |
| 95 | if( fossil_strcmp(zDest,"dir")==0 |
| 96 | && (zDir = db_get("email-send-dir",0))!=0 |
| 97 | ){ |
| 98 | @ Written to files in "%h(zDir)" |
| 99 | @ (%,d(file_directory_size(zDir,0,1)) messages) |
| 100 | }else |
| 101 | if( fossil_strcmp(zDest,"relay")==0 |
| 102 | && (zRelay = db_get("email-send-relayhost",0))!=0 |
| 103 | ){ |
| 104 | @ Relay to %h(zRelay) using SMTP |
| 105 |
| --- src/stat.c | |
| +++ src/stat.c | |
| @@ -94,11 +94,11 @@ | |
| 94 | }else |
| 95 | if( fossil_strcmp(zDest,"dir")==0 |
| 96 | && (zDir = db_get("email-send-dir",0))!=0 |
| 97 | ){ |
| 98 | @ Written to files in "%h(zDir)" |
| 99 | @ (%,d(file_directory_list(zDir,0,1,0,0)) messages) |
| 100 | }else |
| 101 | if( fossil_strcmp(zDest,"relay")==0 |
| 102 | && (zRelay = db_get("email-send-relayhost",0))!=0 |
| 103 | ){ |
| 104 | @ Relay to %h(zRelay) using SMTP |
| 105 |
-24
| --- src/util.c | ||
| +++ src/util.c | ||
| @@ -995,34 +995,10 @@ | ||
| 995 | 995 | zPath += i; |
| 996 | 996 | } |
| 997 | 997 | return bFound; |
| 998 | 998 | } |
| 999 | 999 | |
| 1000 | -/* | |
| 1001 | -** COMMAND: which* | |
| 1002 | -** | |
| 1003 | -** Usage: fossil which [-a] NAME ... | |
| 1004 | -** | |
| 1005 | -** For each NAME mentioned as an argument, print the first location on the | |
| 1006 | -** on PATH of the executable with that name. Or, show all locations on PATH | |
| 1007 | -** for each argument if the -a option is used. | |
| 1008 | -** | |
| 1009 | -** This command is a substitute for the unix "which" command, which is not | |
| 1010 | -** always available, especially on Windows. | |
| 1011 | -*/ | |
| 1012 | -void test_app_on_path(void){ | |
| 1013 | - int i; | |
| 1014 | - int ePrint = 1; | |
| 1015 | - if( find_option("all","a",0)!=0 ) ePrint = 2; | |
| 1016 | - verify_all_options(); | |
| 1017 | - for(i=2; i<g.argc; i++){ | |
| 1018 | - if( fossil_app_on_path(g.argv[i], ePrint)==0 ){ | |
| 1019 | - fossil_print("NOT FOUND: %s\n", g.argv[i]); | |
| 1020 | - } | |
| 1021 | - } | |
| 1022 | -} | |
| 1023 | - | |
| 1024 | 1000 | /* |
| 1025 | 1001 | ** Return the name of a command that will launch a web-browser. |
| 1026 | 1002 | */ |
| 1027 | 1003 | const char *fossil_web_browser(void){ |
| 1028 | 1004 | const char *zBrowser = 0; |
| 1029 | 1005 | |
| 1030 | 1006 | ADDED src/xsystem.c |
| --- src/util.c | |
| +++ src/util.c | |
| @@ -995,34 +995,10 @@ | |
| 995 | zPath += i; |
| 996 | } |
| 997 | return bFound; |
| 998 | } |
| 999 | |
| 1000 | /* |
| 1001 | ** COMMAND: which* |
| 1002 | ** |
| 1003 | ** Usage: fossil which [-a] NAME ... |
| 1004 | ** |
| 1005 | ** For each NAME mentioned as an argument, print the first location on the |
| 1006 | ** on PATH of the executable with that name. Or, show all locations on PATH |
| 1007 | ** for each argument if the -a option is used. |
| 1008 | ** |
| 1009 | ** This command is a substitute for the unix "which" command, which is not |
| 1010 | ** always available, especially on Windows. |
| 1011 | */ |
| 1012 | void test_app_on_path(void){ |
| 1013 | int i; |
| 1014 | int ePrint = 1; |
| 1015 | if( find_option("all","a",0)!=0 ) ePrint = 2; |
| 1016 | verify_all_options(); |
| 1017 | for(i=2; i<g.argc; i++){ |
| 1018 | if( fossil_app_on_path(g.argv[i], ePrint)==0 ){ |
| 1019 | fossil_print("NOT FOUND: %s\n", g.argv[i]); |
| 1020 | } |
| 1021 | } |
| 1022 | } |
| 1023 | |
| 1024 | /* |
| 1025 | ** Return the name of a command that will launch a web-browser. |
| 1026 | */ |
| 1027 | const char *fossil_web_browser(void){ |
| 1028 | const char *zBrowser = 0; |
| 1029 | |
| 1030 | DDED src/xsystem.c |
| --- src/util.c | |
| +++ src/util.c | |
| @@ -995,34 +995,10 @@ | |
| 995 | zPath += i; |
| 996 | } |
| 997 | return bFound; |
| 998 | } |
| 999 | |
| 1000 | /* |
| 1001 | ** Return the name of a command that will launch a web-browser. |
| 1002 | */ |
| 1003 | const char *fossil_web_browser(void){ |
| 1004 | const char *zBrowser = 0; |
| 1005 | |
| 1006 | DDED src/xsystem.c |
+391
| --- a/src/xsystem.c | ||
| +++ b/src/xsystem.c | ||
| @@ -0,0 +1,391 @@ | ||
| 1 | +/* | |
| 2 | +** Copyright (c) 2025 D. Richard Hipp | |
| 3 | +** | |
| 4 | +** This program is free software; you can redistribute it and/or | |
| 5 | +** modify it under the terms of the Simplified BSD License (also | |
| 6 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 7 | + | |
| 8 | +** This program is distributed in the hope that it will be useful, | |
| 9 | +** but without any warranty; without even the implied warranty of | |
| 10 | +** merchantability or fitness for a particular purpose. | |
| 11 | +** | |
| 12 | +** Author contact information: | |
| 13 | +** [email protected] | |
| 14 | +** | |
| 15 | +******************************************************************************* | |
| 16 | +** | |
| 17 | +** This file contains code used to implement "fossil system ..." command. | |
| 18 | +** | |
| 19 | +** Fossil is frequently used by people familiar with Unix but who must | |
| 20 | +** sometimes also work on Windows systems. The "fossil sys ..." command | |
| 21 | +** provides a few work-arounds for command unix command-line utilities to | |
| 22 | +** help make development on Windows more habitable for long-time unix | |
| 23 | +** users. The commands provided here are normally cheap substitutes to | |
| 24 | +** their more feature-reach unix counterparts. But they are sufficient to | |
| 25 | +** get the job done. | |
| 26 | +** | |
| 27 | +** This source code file is called "xsystem.c" with the 'x' up front because | |
| 28 | +** if it were called "system.c", then makeheaders would generate a "system.h" | |
| 29 | +** header file, and that might be connclude <windows.h> | |
| 30 | +#endif | |
| 31 | + | |
| 32 | + | |
| 33 | +/* Date and time */ | |
| 34 | +void xsystem_date(int ){ | |
| 35 | + (void)argc; | |
| 36 | + (void)argv; | |
| 37 | + fossil_print("%z = ", cgi_iso8601_datestamp()); | |
| 38 | + fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ | |
| 39 | +void xsystem_pwd(int argc, char **argv){ | |
| 40 | + char *zPwd = file_getcwd(0, 0); | |
| 41 | + fossil_print("%z\n", zPwd); | |
| 42 | +} | |
| 43 | + | |
| 44 | +/* Implement "stty size" */ | |
| 45 | +void xsystem_stty(int argc, char **argv){ | |
| 46 | + TerminalSize ts; | |
| 47 | + if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); | |
| 48 | + }else{ | |
| 49 | + if( z[1]=='-' && z[2]!=0 ) z++; | |
| 50 | + if( fossil_strcmp(z,"-a")==0 ){ | |
| 51 | + ePrint = 2; | |
| 52 | + }else | |
| 53 | + { | |
| 54 | + fossil_fatal("unknown option \"%s\"", argv[i]); | |
| 55 | + } | |
| 56 | + } | |
| 57 | + } | |
| 58 | +} | |
| 59 | + | |
| 60 | +/* | |
| 61 | +** Bit values for the mFlags paramater to "ls" | |
| 62 | +*/ | |
| 63 | +#define LS_LONG 0x001 /* -l Long format - one object per line */ | |
| 64 | +#define LS_REVERSE 0x002 /* -r Reverse the sort order */ | |
| 65 | +#define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ | |
| 66 | +static void nocolorNameFunc( | |
| 67 | + sqlite3_context *context, | |
| 68 | + izFile largest first | |
| 69 | +** -t | |
| 70 | +#endif | |
| 71 | + fossil_print("fossil_print("%s %*lld %s %s\n", | |
| 72 | + zMode, | |
| 73 | + szSz, | |
| 74 | + sqlite3_column_int64(pStmt, 1), | |
| 75 | + sqlite3_column_text(pStmt, 2), | |
| 76 | + zName); | |
| 77 | + } | |
| 78 | + sqlite3_finalize(pStmt); | |
| 79 | + }else if( (mFlags & LS_COMMA)!=0 ){ | |
| 80 | + /* Comma-se because | |
| 81 | +** if it were called "system.c", then makeheaders would generate a "system.h" | |
| 82 | +** header file, and that might be connclude <windows.h> | |
| 83 | +#endif | |
| 84 | + | |
| 85 | + | |
| 86 | +/* Date and time */ | |
| 87 | +void xsystem_date(int argc, char **argv){ | |
| 88 | + (void)argc; | |
| 89 | + (void)argv; | |
| 90 | + fossil_print("%z = ", cgi_iso8601_datestamp()); | |
| 91 | + fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ | |
| 92 | +void xsystem_pwd(int argc, char **argv){ | |
| 93 | + char *zPwd = file_getcwd(0, 0); | |
| 94 | + fossil_print("%z\n", zPwd); | |
| 95 | +} | |
| 96 | + | |
| 97 | +/* Implement "stty size" */ | |
| 98 | +void xsystem_stty(int argc, char **argv){ | |
| 99 | + TerminalSize ts; | |
| 100 | + if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); | |
| 101 | + }else{ | |
| 102 | + if( z[1]=='-' && z[2]!=0 ) z++; | |
| 103 | + if( fossil_strcmp(z,"-a")==0 ){ | |
| 104 | + ePrint = 2; | |
| 105 | + }else | |
| 106 | + { | |
| 107 | + fossil_fatal("unknown option \"%s\"", argv[i]); | |
| 108 | + } | |
| 109 | + } | |
| 110 | + } | |
| 111 | +} | |
| 112 | + | |
| 113 | +/* | |
| 114 | +** Bit values for the mFlags paramater to "ls" | |
| 115 | +*/ | |
| 116 | +#define LS_LONG 0x001 /* -l Long format - one object per line */ | |
| 117 | +#define LS_REVERSE 0x002 /* -r Reverse the sort order */ | |
| 118 | +#define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ | |
| 119 | +static void nocolorNameFunc( | |
| 120 | + sqlite3_context *context, | |
| 121 | + izFile largest first | |
| 122 | +** -t | |
| 123 | +#endif | |
| 124 | + fossil_print("fossil_print("%s %*lld %s %s\n", | |
| 125 | + zMode, | |
| 126 | + szSz, | |
| 127 | + sqlite3_column_int64(pStmt, 1), | |
| 128 | + sqlite3_column_text(pStmt, 2), | |
| 129 | + zName); | |
| 130 | + } | |
| 131 | + sqlite3_finalize(pStmt); | |
| 132 | + }else if( (mFlags & LS_COMMA)!=0 ){ | |
| 133 | + /* Comma-separate list */ | |
| 134 | + int mx = terminal_get_width(80); | |
| 135 | + int sumW = 0; | |
| 136 | + char *zSql; | |
| 137 | + zSql = mprintf("SELECT color(fn,mode), dlen FROM ls ORDER BY %s", | |
| 138 | + xsystem_ls_orderby(mFlags)); | |
| 139 | + sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ | |
| 140 | + const char *z = (const char*)sqlite3_column_text(pStmt, 0); | |
| 141 | + int w = sqlite3_column_int(pStmt, 1); | |
| 142 | + if( sumW==0 ){ | |
| 143 | + fossil_print("%s", z); | |
| 144 | + sumW = w; | |
| 145 | + }else if( sumW + w + 2 >= mx ){ | |
| 146 | + fossil_print("\n%size_fn | |
| 147 | + fossil_print("\n%s", z); | |
| 148 | + sumW = w; | |
| 149 | + }else{ | |
| 150 | + fossil_print(", %s", z); | |
| 151 | + sumW += w+2; | |
| 152 | + } | |
| 153 | + } | |
| 154 | + fossil_free(zSql); | |
| 155 | + sqlite3_finalize(pStmt); | |
| 156 | + if( sumW>0 ) fossil_print("\n"); | |
| 157 | + }else{ | |
| 158 | + /* Column mode with jnt k; | |
| 159 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 160 | +** kno/* | |
| 161 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); | |
| 162 | +} | |
| 163 | + | |
| 164 | +/* List files "ls"0); | |
| 165 | +} | |
| 166 | + | |
| 167 | +/* List files "ls"n with "." | |
| 168 | +** -C case 'C/* List files "ls" --color=WHEN Colorize out just directory names, }else | |
| 169 | + { | |
| 170 | + fos-%c", z[k]); Comma-separated list | |
| 171 | +** -r Reverse sort | |
| 172 | +** -S Sofinish(pOut), -1, sqlite3_free); | |
| 173 | +}stem_ls_insert(pStmt, ".", mFlags); | |
| 174 | + xsystem_ls_render(db, mFlags); | |
| 175 | + } | |
| 176 | + if( nDir>0 ){ | |
| 177 | + for(i=1; i<argc; i++){ | |
| 178 | + const char *z = argv[i]; | |
| 179 | + 2, SQLITE_UTF8, 0, xsystem_ls_ordemFlags)); | |
| 180 | + sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ | |
| 181 | + const char *z = (const char*)sqlite3_column_text(pStmt, 0); | |
| 182 | + int w = sqlite3_column_int(pStmt, 1); | |
| 183 | + if( sumW==0 ){ | |
| 184 | + fossil_print("%s", z); | |
| 185 | + sumW = w; | |
| 186 | + }else if( sumW + w + 2 >= mx ){ | |
| 187 | + fossil_print("\n%s", z); | |
| 188 | + sumW = w; | |
| 189 | + }else{ | |
| 190 | + fossil_print(", %s", z); | |
| 191 | + sumW += w+2; | |
| 192 | + } | |
| 193 | + } | |
| 194 | + fossil_free(zSql); | |
| 195 | + sqlite3_finalize(pStmt); | |
| 196 | + if( sumW>0 ) fossil_print("\n"); | |
| 197 | + }else{ | |
| 198 | + /* Column mode with jnt k; | |
| 199 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 200 | +** kno/* | |
| 201 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1cafn } | |
| 202 | + } | |
| 203 | + fossil_free(zSql); | |
| 204 | + sqlite3_finalize(pStmt); | |
| 205 | + if( sumW>0 ) fossil_print("\n"); | |
| 206 | + }else{ | |
| 207 | + /* Column mode with jnt k; | |
| 208 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 209 | +** kno/* | |
| 210 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); | |
| 211 | +} | |
| 212 | + | |
| 213 | +/* List files "ls"0); | |
| 214 | +} | |
| 215 | + | |
| 216 | +/* List files "nt k; | |
| 217 | +case 'lcase 'rcase 'Sntly used by people familiar}fnfn it and/or | |
| 218 | +** modify it under the terms of the Simplified BSD License (also | |
| 219 | +** know/* | |
| 220 | +** Copyright (c) 2025 D. Richint nCol, mxWidth, iRow, nSp, nRow;T color(fn,mod BSD LiSELECT max/* | |
| 221 | +** Copyright (c) 2025 D. Richard Hipp | |
| 222 | +** | |
| 223 | +** This program is free software; you can redistribute it and/or | |
| 224 | +** modify it under the terms of the Simplified BSD License (also | |
| 225 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 226 | + | |
| 227 | +** This program is distributed in the hope that it will be useful, | |
| 228 | +** but without any warranty; without even the implied warranty of | |
| 229 | +** merchantability or fitness for a particular purpose. | |
| 230 | +** | |
| 231 | +** Author contact information: | |
| 232 | +** [email protected] | |
| 233 | +** | |
| 234 | +******************************************************************************* | |
| 235 | +** | |
| 236 | +** This file contains code used to implement "fossil system ..." command. | |
| 237 | +** | |
| 238 | +** Fossil is frequently used by people familiar with Unix but who must | |
| 239 | +** sometimes also work on Windows systems. The "fossil sys ..." command | |
| 240 | +** provides a few work-arounds for command unix command-line utilities to | |
| 241 | +** help make development on Windows more habitable for long-time unix | |
| 242 | +** users. The commands provided here are normally cheap substitutes to | |
| 243 | +** their more feature-reach unix counterparts. But they are sufficient to | |
| 244 | +** get the job done. | |
| 245 | +** | |
| 246 | +** This source code file is called "xsystem.c" with the 'x' up front because | |
| 247 | +** if it were called "system.c", then makeheaders would generate a "system.h" | |
| 248 | +** header file, and that might be connclude <windows.h> | |
| 249 | +#endif | |
| 250 | + | |
| 251 | + | |
| 252 | +/* Date and time */ | |
| 253 | +void xsystem_date(int argc, char **argv){ | |
| 254 | + (void)argc; | |
| 255 | + (void)argv; | |
| 256 | + fossil_print("%z = ", cgi_iso8601_datestamp()); | |
| 257 | + fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ | |
| 258 | +void xsystem_pwd(int argc, char **argv){ | |
| 259 | + char *zPwd = file_getcwd(0, 0); | |
| 260 | + fossil_print("%z\n", zPwd); | |
| 261 | +} | |
| 262 | + | |
| 263 | +/* Implement "stty size" */ | |
| 264 | +void xsystem_stty(int argc, char **argv){ | |
| 265 | + TerminalSize ts; | |
| 266 | + if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); | |
| 267 | + }else{ | |
| 268 | + if( z[1]=='-' && z[2]!=0 ) z++; | |
| 269 | + if( fossil_strcmp(z,"-a")==0 ){ | |
| 270 | + ePrint = 2; | |
| 271 | + }else | |
| 272 | + { | |
| 273 | + fossil_fatal("unknown option \"%s\"", argv[i]); | |
| 274 | + } | |
| 275 | + } | |
| 276 | + } | |
| 277 | +} | |
| 278 | + | |
| 279 | +/* | |
| 280 | +** Bit values for the mFlags paramater to "ls" | |
| 281 | +*/ | |
| 282 | +#define LS_LONG 0x001 /* -l Long format - one object per line */ | |
| 283 | +#define LS_REVERSE 0x002 /* -r Reverse the sort order */ | |
| 284 | +#define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ | |
| 285 | +static void nocolorNameFunc( | |
| 286 | + sqlite3_context *context, | |
| 287 | + izFile largest first | |
| 288 | +** -t | |
| 289 | +#endif | |
| 290 | + fossil_print("fossil_print("%s %*lld %s %s\n", | |
| 291 | + zMode, | |
| 292 | + szSz, | |
| 293 | + sqlite3_column_int64(pStmt, 1), | |
| 294 | + sqlite3_column_text(pStmt, 2), | |
| 295 | + zName); | |
| 296 | + } | |
| 297 | + sqlite3_finalize(pStmt); | |
| 298 | + }else if( (mFlags & LS_COMMA)!=0 ){ | |
| 299 | + /* Comma-separate list */ | |
| 300 | + int mx = terminal_get_width(80); | |
| 301 | + int sumW = 0; | |
| 302 | + char *zSql; | |
| 303 | + zSql = mprintf("SELECT color(fn,mode), dlen FROM ls ORDER BY %s", | |
| 304 | + xsystem_ls_orderby(mFlags)); | |
| 305 | + sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ | |
| 306 | + const char *z = (const char*)sqlite3_column_text(pStmt, 0); | |
| 307 | + int w = sqlite3_column_int(pStmt, 1); | |
| 308 | + if( sumW==0 ){ | |
| 309 | + fossil_print("%s", z); | |
| 310 | + sumW = w; | |
| 311 | + }else if( sumW + w + 2 >= mx ){ | |
| 312 | + fossil_print("\n%size_fn | |
| 313 | + fossil_print("\n%s", z); | |
| 314 | + sumW = w; | |
| 315 | + }else{ | |
| 316 | + fossil_print(", %s", z); | |
| 317 | + sumW += w+2; | |
| 318 | + } | |
| 319 | + } | |
| 320 | + fossil_free(zSql); | |
| 321 | + sqlite3_finalize(pStmt); | |
| 322 | + if( sumW>0 ) fossil_print("\n"); | |
| 323 | + }else{ | |
| 324 | + /* Column mode with jnt k; | |
| 325 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 326 | +** kno/* | |
| 327 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); | |
| 328 | +} | |
| 329 | + | |
| 330 | +/* List files "ls"0); | |
| 331 | +} | |
| 332 | + | |
| 333 | +/* List files "ls"n with "." | |
| 334 | +** -C case 'C/* List files "ls" --color=WHEN Colorize out just directory names, }else | |
| 335 | + { | |
| 336 | + fos-%c", z[k]); Comma-separated list | |
| 337 | +** -r Reverse sort | |
| 338 | +** -S Sofinish(pOut), -1, sqlite3_free); | |
| 339 | +}stem_ls_insert(pStmt, ".", mFlags); | |
| 340 | + xsystem_ls_render(db, mFlags); | |
| 341 | + } | |
| 342 | + if( nDir>0 ){ | |
| 343 | + for(i=1; i<argc; i++){ | |
| 344 | + const char *z = argv[i]; | |
| 345 | + 2, SQLITE_UTF8, 0, xsystem_ls_ordemFlags)); | |
| 346 | + sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ | |
| 347 | + const char *z = (const char*)sqlite3_column_text(pStmt, 0); | |
| 348 | + int w = sqlite3_column_int(pStmt, 1); | |
| 349 | + if( sumW==0 ){ | |
| 350 | + fossil_print("%s", z); | |
| 351 | + sumW = w; | |
| 352 | + }else if( sumW + w + 2 >= mx ){ | |
| 353 | + fossil_print("\n%s", z); | |
| 354 | + sumW = w; | |
| 355 | + }else{ | |
| 356 | + fossil_print(", %s", z); | |
| 357 | + sumW += w+2; | |
| 358 | + } | |
| 359 | + } | |
| 360 | + fossil_free(zSql); | |
| 361 | + sqlite3_finalize(pStmt); | |
| 362 | + if( sumW>0 ) fossil_print("\n"); | |
| 363 | + }else{ | |
| 364 | + /* Column mode with jnt k; | |
| 365 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 366 | +** kno/* | |
| 367 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1cafn } | |
| 368 | + } | |
| 369 | + fossil_free(zSql); | |
| 370 | + sqlite3_finalize(pStmt); | |
| 371 | + if( sumW>0 ) fossil_print("\n"); | |
| 372 | + }else{ | |
| 373 | + /* Column mode with jnt k; | |
| 374 | + zSql = mprintf("SELECT color(fn,mod BSD License (also | |
| 375 | +** kno/* | |
| 376 | +** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); | |
| 377 | +} | |
| 378 | + | |
| 379 | +/* List files "ls"0); | |
| 380 | +} | |
| 381 | + | |
| 382 | +/* List files "nt k; | |
| 383 | +case 'lcase 'rcase 'Sntly used by people familiar}fnfn it and/or | |
| 384 | +** modify it under the terms of the Simplified BSD License (also | |
| 385 | +** know/* | |
| 386 | +** Copyright (c) 2025 D. RichELECT color(fn,mod BSD License (also | |
| 387 | +** kno/* | |
| 388 | +** Copyright (c) 2025 case 'd/* List fi &pStmt,ql, -1case 'l/* List filesmxWidtheccase 'r/* List files "ls",0); | |
| 389 | + nCol = (ssil_free(zSql); | |
| 390 | + s+1)/(mxWidth+2); | |
| 391 | + if( nCol<1 |
| --- a/src/xsystem.c | |
| +++ b/src/xsystem.c | |
| @@ -0,0 +1,391 @@ | |
| --- a/src/xsystem.c | |
| +++ b/src/xsystem.c | |
| @@ -0,0 +1,391 @@ | |
| 1 | /* |
| 2 | ** Copyright (c) 2025 D. Richard Hipp |
| 3 | ** |
| 4 | ** This program is free software; you can redistribute it and/or |
| 5 | ** modify it under the terms of the Simplified BSD License (also |
| 6 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 7 | |
| 8 | ** This program is distributed in the hope that it will be useful, |
| 9 | ** but without any warranty; without even the implied warranty of |
| 10 | ** merchantability or fitness for a particular purpose. |
| 11 | ** |
| 12 | ** Author contact information: |
| 13 | ** [email protected] |
| 14 | ** |
| 15 | ******************************************************************************* |
| 16 | ** |
| 17 | ** This file contains code used to implement "fossil system ..." command. |
| 18 | ** |
| 19 | ** Fossil is frequently used by people familiar with Unix but who must |
| 20 | ** sometimes also work on Windows systems. The "fossil sys ..." command |
| 21 | ** provides a few work-arounds for command unix command-line utilities to |
| 22 | ** help make development on Windows more habitable for long-time unix |
| 23 | ** users. The commands provided here are normally cheap substitutes to |
| 24 | ** their more feature-reach unix counterparts. But they are sufficient to |
| 25 | ** get the job done. |
| 26 | ** |
| 27 | ** This source code file is called "xsystem.c" with the 'x' up front because |
| 28 | ** if it were called "system.c", then makeheaders would generate a "system.h" |
| 29 | ** header file, and that might be connclude <windows.h> |
| 30 | #endif |
| 31 | |
| 32 | |
| 33 | /* Date and time */ |
| 34 | void xsystem_date(int ){ |
| 35 | (void)argc; |
| 36 | (void)argv; |
| 37 | fossil_print("%z = ", cgi_iso8601_datestamp()); |
| 38 | fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ |
| 39 | void xsystem_pwd(int argc, char **argv){ |
| 40 | char *zPwd = file_getcwd(0, 0); |
| 41 | fossil_print("%z\n", zPwd); |
| 42 | } |
| 43 | |
| 44 | /* Implement "stty size" */ |
| 45 | void xsystem_stty(int argc, char **argv){ |
| 46 | TerminalSize ts; |
| 47 | if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); |
| 48 | }else{ |
| 49 | if( z[1]=='-' && z[2]!=0 ) z++; |
| 50 | if( fossil_strcmp(z,"-a")==0 ){ |
| 51 | ePrint = 2; |
| 52 | }else |
| 53 | { |
| 54 | fossil_fatal("unknown option \"%s\"", argv[i]); |
| 55 | } |
| 56 | } |
| 57 | } |
| 58 | } |
| 59 | |
| 60 | /* |
| 61 | ** Bit values for the mFlags paramater to "ls" |
| 62 | */ |
| 63 | #define LS_LONG 0x001 /* -l Long format - one object per line */ |
| 64 | #define LS_REVERSE 0x002 /* -r Reverse the sort order */ |
| 65 | #define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ |
| 66 | static void nocolorNameFunc( |
| 67 | sqlite3_context *context, |
| 68 | izFile largest first |
| 69 | ** -t |
| 70 | #endif |
| 71 | fossil_print("fossil_print("%s %*lld %s %s\n", |
| 72 | zMode, |
| 73 | szSz, |
| 74 | sqlite3_column_int64(pStmt, 1), |
| 75 | sqlite3_column_text(pStmt, 2), |
| 76 | zName); |
| 77 | } |
| 78 | sqlite3_finalize(pStmt); |
| 79 | }else if( (mFlags & LS_COMMA)!=0 ){ |
| 80 | /* Comma-se because |
| 81 | ** if it were called "system.c", then makeheaders would generate a "system.h" |
| 82 | ** header file, and that might be connclude <windows.h> |
| 83 | #endif |
| 84 | |
| 85 | |
| 86 | /* Date and time */ |
| 87 | void xsystem_date(int argc, char **argv){ |
| 88 | (void)argc; |
| 89 | (void)argv; |
| 90 | fossil_print("%z = ", cgi_iso8601_datestamp()); |
| 91 | fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ |
| 92 | void xsystem_pwd(int argc, char **argv){ |
| 93 | char *zPwd = file_getcwd(0, 0); |
| 94 | fossil_print("%z\n", zPwd); |
| 95 | } |
| 96 | |
| 97 | /* Implement "stty size" */ |
| 98 | void xsystem_stty(int argc, char **argv){ |
| 99 | TerminalSize ts; |
| 100 | if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); |
| 101 | }else{ |
| 102 | if( z[1]=='-' && z[2]!=0 ) z++; |
| 103 | if( fossil_strcmp(z,"-a")==0 ){ |
| 104 | ePrint = 2; |
| 105 | }else |
| 106 | { |
| 107 | fossil_fatal("unknown option \"%s\"", argv[i]); |
| 108 | } |
| 109 | } |
| 110 | } |
| 111 | } |
| 112 | |
| 113 | /* |
| 114 | ** Bit values for the mFlags paramater to "ls" |
| 115 | */ |
| 116 | #define LS_LONG 0x001 /* -l Long format - one object per line */ |
| 117 | #define LS_REVERSE 0x002 /* -r Reverse the sort order */ |
| 118 | #define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ |
| 119 | static void nocolorNameFunc( |
| 120 | sqlite3_context *context, |
| 121 | izFile largest first |
| 122 | ** -t |
| 123 | #endif |
| 124 | fossil_print("fossil_print("%s %*lld %s %s\n", |
| 125 | zMode, |
| 126 | szSz, |
| 127 | sqlite3_column_int64(pStmt, 1), |
| 128 | sqlite3_column_text(pStmt, 2), |
| 129 | zName); |
| 130 | } |
| 131 | sqlite3_finalize(pStmt); |
| 132 | }else if( (mFlags & LS_COMMA)!=0 ){ |
| 133 | /* Comma-separate list */ |
| 134 | int mx = terminal_get_width(80); |
| 135 | int sumW = 0; |
| 136 | char *zSql; |
| 137 | zSql = mprintf("SELECT color(fn,mode), dlen FROM ls ORDER BY %s", |
| 138 | xsystem_ls_orderby(mFlags)); |
| 139 | sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ |
| 140 | const char *z = (const char*)sqlite3_column_text(pStmt, 0); |
| 141 | int w = sqlite3_column_int(pStmt, 1); |
| 142 | if( sumW==0 ){ |
| 143 | fossil_print("%s", z); |
| 144 | sumW = w; |
| 145 | }else if( sumW + w + 2 >= mx ){ |
| 146 | fossil_print("\n%size_fn |
| 147 | fossil_print("\n%s", z); |
| 148 | sumW = w; |
| 149 | }else{ |
| 150 | fossil_print(", %s", z); |
| 151 | sumW += w+2; |
| 152 | } |
| 153 | } |
| 154 | fossil_free(zSql); |
| 155 | sqlite3_finalize(pStmt); |
| 156 | if( sumW>0 ) fossil_print("\n"); |
| 157 | }else{ |
| 158 | /* Column mode with jnt k; |
| 159 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 160 | ** kno/* |
| 161 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); |
| 162 | } |
| 163 | |
| 164 | /* List files "ls"0); |
| 165 | } |
| 166 | |
| 167 | /* List files "ls"n with "." |
| 168 | ** -C case 'C/* List files "ls" --color=WHEN Colorize out just directory names, }else |
| 169 | { |
| 170 | fos-%c", z[k]); Comma-separated list |
| 171 | ** -r Reverse sort |
| 172 | ** -S Sofinish(pOut), -1, sqlite3_free); |
| 173 | }stem_ls_insert(pStmt, ".", mFlags); |
| 174 | xsystem_ls_render(db, mFlags); |
| 175 | } |
| 176 | if( nDir>0 ){ |
| 177 | for(i=1; i<argc; i++){ |
| 178 | const char *z = argv[i]; |
| 179 | 2, SQLITE_UTF8, 0, xsystem_ls_ordemFlags)); |
| 180 | sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ |
| 181 | const char *z = (const char*)sqlite3_column_text(pStmt, 0); |
| 182 | int w = sqlite3_column_int(pStmt, 1); |
| 183 | if( sumW==0 ){ |
| 184 | fossil_print("%s", z); |
| 185 | sumW = w; |
| 186 | }else if( sumW + w + 2 >= mx ){ |
| 187 | fossil_print("\n%s", z); |
| 188 | sumW = w; |
| 189 | }else{ |
| 190 | fossil_print(", %s", z); |
| 191 | sumW += w+2; |
| 192 | } |
| 193 | } |
| 194 | fossil_free(zSql); |
| 195 | sqlite3_finalize(pStmt); |
| 196 | if( sumW>0 ) fossil_print("\n"); |
| 197 | }else{ |
| 198 | /* Column mode with jnt k; |
| 199 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 200 | ** kno/* |
| 201 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1cafn } |
| 202 | } |
| 203 | fossil_free(zSql); |
| 204 | sqlite3_finalize(pStmt); |
| 205 | if( sumW>0 ) fossil_print("\n"); |
| 206 | }else{ |
| 207 | /* Column mode with jnt k; |
| 208 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 209 | ** kno/* |
| 210 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); |
| 211 | } |
| 212 | |
| 213 | /* List files "ls"0); |
| 214 | } |
| 215 | |
| 216 | /* List files "nt k; |
| 217 | case 'lcase 'rcase 'Sntly used by people familiar}fnfn it and/or |
| 218 | ** modify it under the terms of the Simplified BSD License (also |
| 219 | ** know/* |
| 220 | ** Copyright (c) 2025 D. Richint nCol, mxWidth, iRow, nSp, nRow;T color(fn,mod BSD LiSELECT max/* |
| 221 | ** Copyright (c) 2025 D. Richard Hipp |
| 222 | ** |
| 223 | ** This program is free software; you can redistribute it and/or |
| 224 | ** modify it under the terms of the Simplified BSD License (also |
| 225 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 226 | |
| 227 | ** This program is distributed in the hope that it will be useful, |
| 228 | ** but without any warranty; without even the implied warranty of |
| 229 | ** merchantability or fitness for a particular purpose. |
| 230 | ** |
| 231 | ** Author contact information: |
| 232 | ** [email protected] |
| 233 | ** |
| 234 | ******************************************************************************* |
| 235 | ** |
| 236 | ** This file contains code used to implement "fossil system ..." command. |
| 237 | ** |
| 238 | ** Fossil is frequently used by people familiar with Unix but who must |
| 239 | ** sometimes also work on Windows systems. The "fossil sys ..." command |
| 240 | ** provides a few work-arounds for command unix command-line utilities to |
| 241 | ** help make development on Windows more habitable for long-time unix |
| 242 | ** users. The commands provided here are normally cheap substitutes to |
| 243 | ** their more feature-reach unix counterparts. But they are sufficient to |
| 244 | ** get the job done. |
| 245 | ** |
| 246 | ** This source code file is called "xsystem.c" with the 'x' up front because |
| 247 | ** if it were called "system.c", then makeheaders would generate a "system.h" |
| 248 | ** header file, and that might be connclude <windows.h> |
| 249 | #endif |
| 250 | |
| 251 | |
| 252 | /* Date and time */ |
| 253 | void xsystem_date(int argc, char **argv){ |
| 254 | (void)argc; |
| 255 | (void)argv; |
| 256 | fossil_print("%z = ", cgi_iso8601_datestamp()); |
| 257 | fossil_print("%z\n", cgi_rfc822_datestamp(time(0)));tory */ |
| 258 | void xsystem_pwd(int argc, char **argv){ |
| 259 | char *zPwd = file_getcwd(0, 0); |
| 260 | fossil_print("%z\n", zPwd); |
| 261 | } |
| 262 | |
| 263 | /* Implement "stty size" */ |
| 264 | void xsystem_stty(int argc, char **argv){ |
| 265 | TerminalSize ts; |
| 266 | if( argc!=2 || strcmp(argv[1],"size" fossil_app_on_path(z, ePrint); |
| 267 | }else{ |
| 268 | if( z[1]=='-' && z[2]!=0 ) z++; |
| 269 | if( fossil_strcmp(z,"-a")==0 ){ |
| 270 | ePrint = 2; |
| 271 | }else |
| 272 | { |
| 273 | fossil_fatal("unknown option \"%s\"", argv[i]); |
| 274 | } |
| 275 | } |
| 276 | } |
| 277 | } |
| 278 | |
| 279 | /* |
| 280 | ** Bit values for the mFlags paramater to "ls" |
| 281 | */ |
| 282 | #define LS_LONG 0x001 /* -l Long format - one object per line */ |
| 283 | #define LS_REVERSE 0x002 /* -r Reverse the sort order */ |
| 284 | #define LS_MTIME 0x004 /* -t Sort by mtime, newest ve implementation that does *not* introduce color */ |
| 285 | static void nocolorNameFunc( |
| 286 | sqlite3_context *context, |
| 287 | izFile largest first |
| 288 | ** -t |
| 289 | #endif |
| 290 | fossil_print("fossil_print("%s %*lld %s %s\n", |
| 291 | zMode, |
| 292 | szSz, |
| 293 | sqlite3_column_int64(pStmt, 1), |
| 294 | sqlite3_column_text(pStmt, 2), |
| 295 | zName); |
| 296 | } |
| 297 | sqlite3_finalize(pStmt); |
| 298 | }else if( (mFlags & LS_COMMA)!=0 ){ |
| 299 | /* Comma-separate list */ |
| 300 | int mx = terminal_get_width(80); |
| 301 | int sumW = 0; |
| 302 | char *zSql; |
| 303 | zSql = mprintf("SELECT color(fn,mode), dlen FROM ls ORDER BY %s", |
| 304 | xsystem_ls_orderby(mFlags)); |
| 305 | sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ |
| 306 | const char *z = (const char*)sqlite3_column_text(pStmt, 0); |
| 307 | int w = sqlite3_column_int(pStmt, 1); |
| 308 | if( sumW==0 ){ |
| 309 | fossil_print("%s", z); |
| 310 | sumW = w; |
| 311 | }else if( sumW + w + 2 >= mx ){ |
| 312 | fossil_print("\n%size_fn |
| 313 | fossil_print("\n%s", z); |
| 314 | sumW = w; |
| 315 | }else{ |
| 316 | fossil_print(", %s", z); |
| 317 | sumW += w+2; |
| 318 | } |
| 319 | } |
| 320 | fossil_free(zSql); |
| 321 | sqlite3_finalize(pStmt); |
| 322 | if( sumW>0 ) fossil_print("\n"); |
| 323 | }else{ |
| 324 | /* Column mode with jnt k; |
| 325 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 326 | ** kno/* |
| 327 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); |
| 328 | } |
| 329 | |
| 330 | /* List files "ls"0); |
| 331 | } |
| 332 | |
| 333 | /* List files "ls"n with "." |
| 334 | ** -C case 'C/* List files "ls" --color=WHEN Colorize out just directory names, }else |
| 335 | { |
| 336 | fos-%c", z[k]); Comma-separated list |
| 337 | ** -r Reverse sort |
| 338 | ** -S Sofinish(pOut), -1, sqlite3_free); |
| 339 | }stem_ls_insert(pStmt, ".", mFlags); |
| 340 | xsystem_ls_render(db, mFlags); |
| 341 | } |
| 342 | if( nDir>0 ){ |
| 343 | for(i=1; i<argc; i++){ |
| 344 | const char *z = argv[i]; |
| 345 | 2, SQLITE_UTF8, 0, xsystem_ls_ordemFlags)); |
| 346 | sqlite3_prepare_v2(dbterminal_is_vt100() ? LS_COLOR :b, zSql, -1, &pSOW ){ |
| 347 | const char *z = (const char*)sqlite3_column_text(pStmt, 0); |
| 348 | int w = sqlite3_column_int(pStmt, 1); |
| 349 | if( sumW==0 ){ |
| 350 | fossil_print("%s", z); |
| 351 | sumW = w; |
| 352 | }else if( sumW + w + 2 >= mx ){ |
| 353 | fossil_print("\n%s", z); |
| 354 | sumW = w; |
| 355 | }else{ |
| 356 | fossil_print(", %s", z); |
| 357 | sumW += w+2; |
| 358 | } |
| 359 | } |
| 360 | fossil_free(zSql); |
| 361 | sqlite3_finalize(pStmt); |
| 362 | if( sumW>0 ) fossil_print("\n"); |
| 363 | }else{ |
| 364 | /* Column mode with jnt k; |
| 365 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 366 | ** kno/* |
| 367 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1cafn } |
| 368 | } |
| 369 | fossil_free(zSql); |
| 370 | sqlite3_finalize(pStmt); |
| 371 | if( sumW>0 ) fossil_print("\n"); |
| 372 | }else{ |
| 373 | /* Column mode with jnt k; |
| 374 | zSql = mprintf("SELECT color(fn,mod BSD License (also |
| 375 | ** kno/* |
| 376 | ** Copyright (c) 2025 case 'd/* List files "ls"te3_prepare_v2(db, zSql, -1case 'l/* List files "ls"t_query_result(pStmt, &specquery_result(pStmt, &speccase 'r/* List files "ls", 0); |
| 377 | } |
| 378 | |
| 379 | /* List files "ls"0); |
| 380 | } |
| 381 | |
| 382 | /* List files "nt k; |
| 383 | case 'lcase 'rcase 'Sntly used by people familiar}fnfn it and/or |
| 384 | ** modify it under the terms of the Simplified BSD License (also |
| 385 | ** know/* |
| 386 | ** Copyright (c) 2025 D. RichELECT color(fn,mod BSD License (also |
| 387 | ** kno/* |
| 388 | ** Copyright (c) 2025 case 'd/* List fi &pStmt,ql, -1case 'l/* List filesmxWidtheccase 'r/* List files "ls",0); |
| 389 | nCol = (ssil_free(zSql); |
| 390 | s+1)/(mxWidth+2); |
| 391 | if( nCol<1 |
+1
| --- tools/makemake.tcl | ||
| +++ tools/makemake.tcl | ||
| @@ -195,10 +195,11 @@ | ||
| 195 | 195 | wikiformat |
| 196 | 196 | winfile |
| 197 | 197 | winhttp |
| 198 | 198 | xfer |
| 199 | 199 | xfersetup |
| 200 | + xsystem | |
| 200 | 201 | zip |
| 201 | 202 | http_ssl |
| 202 | 203 | } |
| 203 | 204 | |
| 204 | 205 | # Source files which live under $srcDirExt, but only those for which |
| 205 | 206 |
| --- tools/makemake.tcl | |
| +++ tools/makemake.tcl | |
| @@ -195,10 +195,11 @@ | |
| 195 | wikiformat |
| 196 | winfile |
| 197 | winhttp |
| 198 | xfer |
| 199 | xfersetup |
| 200 | zip |
| 201 | http_ssl |
| 202 | } |
| 203 | |
| 204 | # Source files which live under $srcDirExt, but only those for which |
| 205 |
| --- tools/makemake.tcl | |
| +++ tools/makemake.tcl | |
| @@ -195,10 +195,11 @@ | |
| 195 | wikiformat |
| 196 | winfile |
| 197 | winhttp |
| 198 | xfer |
| 199 | xfersetup |
| 200 | xsystem |
| 201 | zip |
| 202 | http_ssl |
| 203 | } |
| 204 | |
| 205 | # Source files which live under $srcDirExt, but only those for which |
| 206 |
+10
-4
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -32,13 +32,13 @@ | ||
| 32 | 32 | |
| 33 | 33 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_SETLK_TIMEOUT -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 34 | 34 | |
| 35 | 35 | PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000 |
| 36 | 36 | |
| 37 | -SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c robot_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c | |
| 37 | +SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c robot_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c xsystem_.c zip_.c | |
| 38 | 38 | |
| 39 | -OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\robot$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$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)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 39 | +OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\robot$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$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)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\xsystem$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 40 | 40 | |
| 41 | 41 | |
| 42 | 42 | RC=$(DMDIR)\bin\rcc |
| 43 | 43 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 44 | 44 | |
| @@ -53,11 +53,11 @@ | ||
| 53 | 53 | |
| 54 | 54 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 55 | 55 | $(RC) $(RCFLAGS) -o$@ $** |
| 56 | 56 | |
| 57 | 57 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 58 | - +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 loadctrl login lookslike main manifest markdown markdown_html match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report robot rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 58 | + +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 loadctrl login lookslike main manifest markdown markdown_html match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report robot rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup xsystem zip shell sqlite3 th th_lang > $@ | |
| 59 | 59 | +echo fossil >> $@ |
| 60 | 60 | +echo fossil >> $@ |
| 61 | 61 | +echo $(LIBS) >> $@ |
| 62 | 62 | +echo. >> $@ |
| 63 | 63 | +echo fossil >> $@ |
| @@ -1013,15 +1013,21 @@ | ||
| 1013 | 1013 | $(OBJDIR)\xfersetup$O : xfersetup_.c xfersetup.h |
| 1014 | 1014 | $(TCC) -o$@ -c xfersetup_.c |
| 1015 | 1015 | |
| 1016 | 1016 | xfersetup_.c : $(SRCDIR)\xfersetup.c |
| 1017 | 1017 | +translate$E $** > $@ |
| 1018 | + | |
| 1019 | +$(OBJDIR)\xsystem$O : xsystem_.c xsystem.h | |
| 1020 | + $(TCC) -o$@ -c xsystem_.c | |
| 1021 | + | |
| 1022 | +xsystem_.c : $(SRCDIR)\xsystem.c | |
| 1023 | + +translate$E $** > $@ | |
| 1018 | 1024 | |
| 1019 | 1025 | $(OBJDIR)\zip$O : zip_.c zip.h |
| 1020 | 1026 | $(TCC) -o$@ -c zip_.c |
| 1021 | 1027 | |
| 1022 | 1028 | zip_.c : $(SRCDIR)\zip.c |
| 1023 | 1029 | +translate$E $** > $@ |
| 1024 | 1030 | |
| 1025 | 1031 | headers: makeheaders$E page_index.h builtin_data.h VERSION.h |
| 1026 | - +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 loadctrl_.c:loadctrl.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h robot_.c:robot.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h | |
| 1032 | + +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 loadctrl_.c:loadctrl.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h robot_.c:robot.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h xsystem_.c:xsystem.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h | |
| 1027 | 1033 | @copy /Y nul: headers |
| 1028 | 1034 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -32,13 +32,13 @@ | |
| 32 | |
| 33 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_SETLK_TIMEOUT -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 34 | |
| 35 | PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000 |
| 36 | |
| 37 | SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c robot_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c |
| 38 | |
| 39 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\robot$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$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)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 40 | |
| 41 | |
| 42 | RC=$(DMDIR)\bin\rcc |
| 43 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 44 | |
| @@ -53,11 +53,11 @@ | |
| 53 | |
| 54 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 55 | $(RC) $(RCFLAGS) -o$@ $** |
| 56 | |
| 57 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 58 | +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 loadctrl login lookslike main manifest markdown markdown_html match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report robot rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 59 | +echo fossil >> $@ |
| 60 | +echo fossil >> $@ |
| 61 | +echo $(LIBS) >> $@ |
| 62 | +echo. >> $@ |
| 63 | +echo fossil >> $@ |
| @@ -1013,15 +1013,21 @@ | |
| 1013 | $(OBJDIR)\xfersetup$O : xfersetup_.c xfersetup.h |
| 1014 | $(TCC) -o$@ -c xfersetup_.c |
| 1015 | |
| 1016 | xfersetup_.c : $(SRCDIR)\xfersetup.c |
| 1017 | +translate$E $** > $@ |
| 1018 | |
| 1019 | $(OBJDIR)\zip$O : zip_.c zip.h |
| 1020 | $(TCC) -o$@ -c zip_.c |
| 1021 | |
| 1022 | zip_.c : $(SRCDIR)\zip.c |
| 1023 | +translate$E $** > $@ |
| 1024 | |
| 1025 | headers: makeheaders$E page_index.h builtin_data.h VERSION.h |
| 1026 | +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 loadctrl_.c:loadctrl.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h robot_.c:robot.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h |
| 1027 | @copy /Y nul: headers |
| 1028 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -32,13 +32,13 @@ | |
| 32 | |
| 33 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_MATH_FUNCTIONS -DSQLITE_ENABLE_SETLK_TIMEOUT -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 34 | |
| 35 | PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000 |
| 36 | |
| 37 | SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c robot_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c xsystem_.c zip_.c |
| 38 | |
| 39 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\robot$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$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)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\xsystem$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 40 | |
| 41 | |
| 42 | RC=$(DMDIR)\bin\rcc |
| 43 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 44 | |
| @@ -53,11 +53,11 @@ | |
| 53 | |
| 54 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 55 | $(RC) $(RCFLAGS) -o$@ $** |
| 56 | |
| 57 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 58 | +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 loadctrl login lookslike main manifest markdown markdown_html match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report robot rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup xsystem zip shell sqlite3 th th_lang > $@ |
| 59 | +echo fossil >> $@ |
| 60 | +echo fossil >> $@ |
| 61 | +echo $(LIBS) >> $@ |
| 62 | +echo. >> $@ |
| 63 | +echo fossil >> $@ |
| @@ -1013,15 +1013,21 @@ | |
| 1013 | $(OBJDIR)\xfersetup$O : xfersetup_.c xfersetup.h |
| 1014 | $(TCC) -o$@ -c xfersetup_.c |
| 1015 | |
| 1016 | xfersetup_.c : $(SRCDIR)\xfersetup.c |
| 1017 | +translate$E $** > $@ |
| 1018 | |
| 1019 | $(OBJDIR)\xsystem$O : xsystem_.c xsystem.h |
| 1020 | $(TCC) -o$@ -c xsystem_.c |
| 1021 | |
| 1022 | xsystem_.c : $(SRCDIR)\xsystem.c |
| 1023 | +translate$E $** > $@ |
| 1024 | |
| 1025 | $(OBJDIR)\zip$O : zip_.c zip.h |
| 1026 | $(TCC) -o$@ -c zip_.c |
| 1027 | |
| 1028 | zip_.c : $(SRCDIR)\zip.c |
| 1029 | +translate$E $** > $@ |
| 1030 | |
| 1031 | headers: makeheaders$E page_index.h builtin_data.h VERSION.h |
| 1032 | +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 loadctrl_.c:loadctrl.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h robot_.c:robot.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h xsystem_.c:xsystem.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h |
| 1033 | @copy /Y nul: headers |
| 1034 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -548,10 +548,11 @@ | ||
| 548 | 548 | $(SRCDIR)/wikiformat.c \ |
| 549 | 549 | $(SRCDIR)/winfile.c \ |
| 550 | 550 | $(SRCDIR)/winhttp.c \ |
| 551 | 551 | $(SRCDIR)/xfer.c \ |
| 552 | 552 | $(SRCDIR)/xfersetup.c \ |
| 553 | + $(SRCDIR)/xsystem.c \ | |
| 553 | 554 | $(SRCDIR)/zip.c |
| 554 | 555 | |
| 555 | 556 | EXTRA_FILES = \ |
| 556 | 557 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 557 | 558 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -816,10 +817,11 @@ | ||
| 816 | 817 | $(OBJDIR)/wikiformat_.c \ |
| 817 | 818 | $(OBJDIR)/winfile_.c \ |
| 818 | 819 | $(OBJDIR)/winhttp_.c \ |
| 819 | 820 | $(OBJDIR)/xfer_.c \ |
| 820 | 821 | $(OBJDIR)/xfersetup_.c \ |
| 822 | + $(OBJDIR)/xsystem_.c \ | |
| 821 | 823 | $(OBJDIR)/zip_.c |
| 822 | 824 | |
| 823 | 825 | OBJ = \ |
| 824 | 826 | $(OBJDIR)/add.o \ |
| 825 | 827 | $(OBJDIR)/ajax.o \ |
| @@ -967,10 +969,11 @@ | ||
| 967 | 969 | $(OBJDIR)/wikiformat.o \ |
| 968 | 970 | $(OBJDIR)/winfile.o \ |
| 969 | 971 | $(OBJDIR)/winhttp.o \ |
| 970 | 972 | $(OBJDIR)/xfer.o \ |
| 971 | 973 | $(OBJDIR)/xfersetup.o \ |
| 974 | + $(OBJDIR)/xsystem.o \ | |
| 972 | 975 | $(OBJDIR)/zip.o |
| 973 | 976 | |
| 974 | 977 | APPNAME = fossil.exe |
| 975 | 978 | APPTARGETS = |
| 976 | 979 | |
| @@ -1322,10 +1325,11 @@ | ||
| 1322 | 1325 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 1323 | 1326 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 1324 | 1327 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 1325 | 1328 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 1326 | 1329 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 1330 | + $(OBJDIR)/xsystem_.c:$(OBJDIR)/xsystem.h \ | |
| 1327 | 1331 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 1328 | 1332 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 1329 | 1333 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 1330 | 1334 | $(SRCDIR)/th.h \ |
| 1331 | 1335 | $(OBJDIR)/VERSION.h |
| @@ -2516,10 +2520,18 @@ | ||
| 2516 | 2520 | |
| 2517 | 2521 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2518 | 2522 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2519 | 2523 | |
| 2520 | 2524 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2525 | + | |
| 2526 | +$(OBJDIR)/xsystem_.c: $(SRCDIR)/xsystem.c $(TRANSLATE) | |
| 2527 | + $(TRANSLATE) $(SRCDIR)/xsystem.c >$@ | |
| 2528 | + | |
| 2529 | +$(OBJDIR)/xsystem.o: $(OBJDIR)/xsystem_.c $(OBJDIR)/xsystem.h $(SRCDIR)/config.h | |
| 2530 | + $(XTCC) -o $(OBJDIR)/xsystem.o -c $(OBJDIR)/xsystem_.c | |
| 2531 | + | |
| 2532 | +$(OBJDIR)/xsystem.h: $(OBJDIR)/headers | |
| 2521 | 2533 | |
| 2522 | 2534 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(TRANSLATE) |
| 2523 | 2535 | $(TRANSLATE) $(SRCDIR)/zip.c >$@ |
| 2524 | 2536 | |
| 2525 | 2537 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2526 | 2538 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -548,10 +548,11 @@ | |
| 548 | $(SRCDIR)/wikiformat.c \ |
| 549 | $(SRCDIR)/winfile.c \ |
| 550 | $(SRCDIR)/winhttp.c \ |
| 551 | $(SRCDIR)/xfer.c \ |
| 552 | $(SRCDIR)/xfersetup.c \ |
| 553 | $(SRCDIR)/zip.c |
| 554 | |
| 555 | EXTRA_FILES = \ |
| 556 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 557 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -816,10 +817,11 @@ | |
| 816 | $(OBJDIR)/wikiformat_.c \ |
| 817 | $(OBJDIR)/winfile_.c \ |
| 818 | $(OBJDIR)/winhttp_.c \ |
| 819 | $(OBJDIR)/xfer_.c \ |
| 820 | $(OBJDIR)/xfersetup_.c \ |
| 821 | $(OBJDIR)/zip_.c |
| 822 | |
| 823 | OBJ = \ |
| 824 | $(OBJDIR)/add.o \ |
| 825 | $(OBJDIR)/ajax.o \ |
| @@ -967,10 +969,11 @@ | |
| 967 | $(OBJDIR)/wikiformat.o \ |
| 968 | $(OBJDIR)/winfile.o \ |
| 969 | $(OBJDIR)/winhttp.o \ |
| 970 | $(OBJDIR)/xfer.o \ |
| 971 | $(OBJDIR)/xfersetup.o \ |
| 972 | $(OBJDIR)/zip.o |
| 973 | |
| 974 | APPNAME = fossil.exe |
| 975 | APPTARGETS = |
| 976 | |
| @@ -1322,10 +1325,11 @@ | |
| 1322 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 1323 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 1324 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 1325 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 1326 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 1327 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 1328 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 1329 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 1330 | $(SRCDIR)/th.h \ |
| 1331 | $(OBJDIR)/VERSION.h |
| @@ -2516,10 +2520,18 @@ | |
| 2516 | |
| 2517 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2518 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2519 | |
| 2520 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2521 | |
| 2522 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(TRANSLATE) |
| 2523 | $(TRANSLATE) $(SRCDIR)/zip.c >$@ |
| 2524 | |
| 2525 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2526 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -548,10 +548,11 @@ | |
| 548 | $(SRCDIR)/wikiformat.c \ |
| 549 | $(SRCDIR)/winfile.c \ |
| 550 | $(SRCDIR)/winhttp.c \ |
| 551 | $(SRCDIR)/xfer.c \ |
| 552 | $(SRCDIR)/xfersetup.c \ |
| 553 | $(SRCDIR)/xsystem.c \ |
| 554 | $(SRCDIR)/zip.c |
| 555 | |
| 556 | EXTRA_FILES = \ |
| 557 | $(SRCDIR)/../extsrc/pikchr-worker.js \ |
| 558 | $(SRCDIR)/../extsrc/pikchr.js \ |
| @@ -816,10 +817,11 @@ | |
| 817 | $(OBJDIR)/wikiformat_.c \ |
| 818 | $(OBJDIR)/winfile_.c \ |
| 819 | $(OBJDIR)/winhttp_.c \ |
| 820 | $(OBJDIR)/xfer_.c \ |
| 821 | $(OBJDIR)/xfersetup_.c \ |
| 822 | $(OBJDIR)/xsystem_.c \ |
| 823 | $(OBJDIR)/zip_.c |
| 824 | |
| 825 | OBJ = \ |
| 826 | $(OBJDIR)/add.o \ |
| 827 | $(OBJDIR)/ajax.o \ |
| @@ -967,10 +969,11 @@ | |
| 969 | $(OBJDIR)/wikiformat.o \ |
| 970 | $(OBJDIR)/winfile.o \ |
| 971 | $(OBJDIR)/winhttp.o \ |
| 972 | $(OBJDIR)/xfer.o \ |
| 973 | $(OBJDIR)/xfersetup.o \ |
| 974 | $(OBJDIR)/xsystem.o \ |
| 975 | $(OBJDIR)/zip.o |
| 976 | |
| 977 | APPNAME = fossil.exe |
| 978 | APPTARGETS = |
| 979 | |
| @@ -1322,10 +1325,11 @@ | |
| 1325 | $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \ |
| 1326 | $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \ |
| 1327 | $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \ |
| 1328 | $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \ |
| 1329 | $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \ |
| 1330 | $(OBJDIR)/xsystem_.c:$(OBJDIR)/xsystem.h \ |
| 1331 | $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \ |
| 1332 | $(SRCDIR_extsrc)/pikchr.c:$(OBJDIR)/pikchr.h \ |
| 1333 | $(SRCDIR_extsrc)/sqlite3.h \ |
| 1334 | $(SRCDIR)/th.h \ |
| 1335 | $(OBJDIR)/VERSION.h |
| @@ -2516,10 +2520,18 @@ | |
| 2520 | |
| 2521 | $(OBJDIR)/xfersetup.o: $(OBJDIR)/xfersetup_.c $(OBJDIR)/xfersetup.h $(SRCDIR)/config.h |
| 2522 | $(XTCC) -o $(OBJDIR)/xfersetup.o -c $(OBJDIR)/xfersetup_.c |
| 2523 | |
| 2524 | $(OBJDIR)/xfersetup.h: $(OBJDIR)/headers |
| 2525 | |
| 2526 | $(OBJDIR)/xsystem_.c: $(SRCDIR)/xsystem.c $(TRANSLATE) |
| 2527 | $(TRANSLATE) $(SRCDIR)/xsystem.c >$@ |
| 2528 | |
| 2529 | $(OBJDIR)/xsystem.o: $(OBJDIR)/xsystem_.c $(OBJDIR)/xsystem.h $(SRCDIR)/config.h |
| 2530 | $(XTCC) -o $(OBJDIR)/xsystem.o -c $(OBJDIR)/xsystem_.c |
| 2531 | |
| 2532 | $(OBJDIR)/xsystem.h: $(OBJDIR)/headers |
| 2533 | |
| 2534 | $(OBJDIR)/zip_.c: $(SRCDIR)/zip.c $(TRANSLATE) |
| 2535 | $(TRANSLATE) $(SRCDIR)/zip.c >$@ |
| 2536 | |
| 2537 | $(OBJDIR)/zip.o: $(OBJDIR)/zip_.c $(OBJDIR)/zip.h $(SRCDIR)/config.h |
| 2538 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -510,10 +510,11 @@ | ||
| 510 | 510 | "$(OX)\wikiformat_.c" \ |
| 511 | 511 | "$(OX)\winfile_.c" \ |
| 512 | 512 | "$(OX)\winhttp_.c" \ |
| 513 | 513 | "$(OX)\xfer_.c" \ |
| 514 | 514 | "$(OX)\xfersetup_.c" \ |
| 515 | + "$(OX)\xsystem_.c" \ | |
| 515 | 516 | "$(OX)\zip_.c" \ |
| 516 | 517 | "$(SRCDIR_extsrc)\pikchr.c" |
| 517 | 518 | |
| 518 | 519 | EXTRA_FILES = "$(SRCDIR)\..\extsrc\pikchr-worker.js" \ |
| 519 | 520 | "$(SRCDIR)\..\extsrc\pikchr.js" \ |
| @@ -784,10 +785,11 @@ | ||
| 784 | 785 | "$(OX)\wikiformat$O" \ |
| 785 | 786 | "$(OX)\winfile$O" \ |
| 786 | 787 | "$(OX)\winhttp$O" \ |
| 787 | 788 | "$(OX)\xfer$O" \ |
| 788 | 789 | "$(OX)\xfersetup$O" \ |
| 790 | + "$(OX)\xsystem$O" \ | |
| 789 | 791 | "$(OX)\zip$O" \ |
| 790 | 792 | "$(OX)\fossil.res" |
| 791 | 793 | |
| 792 | 794 | |
| 793 | 795 | !ifndef BASEAPPNAME |
| @@ -1035,10 +1037,11 @@ | ||
| 1035 | 1037 | echo "$(OX)\wikiformat.obj" >> $@ |
| 1036 | 1038 | echo "$(OX)\winfile.obj" >> $@ |
| 1037 | 1039 | echo "$(OX)\winhttp.obj" >> $@ |
| 1038 | 1040 | echo "$(OX)\xfer.obj" >> $@ |
| 1039 | 1041 | echo "$(OX)\xfersetup.obj" >> $@ |
| 1042 | + echo "$(OX)\xsystem.obj" >> $@ | |
| 1040 | 1043 | echo "$(OX)\zip.obj" >> $@ |
| 1041 | 1044 | echo $(LIBS) >> $@ |
| 1042 | 1045 | |
| 1043 | 1046 | "$(OBJDIR)\translate$E": "$(SRCDIR_tools)\translate.c" |
| 1044 | 1047 | $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $** |
| @@ -2152,10 +2155,16 @@ | ||
| 2152 | 2155 | "$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h" |
| 2153 | 2156 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c" |
| 2154 | 2157 | |
| 2155 | 2158 | "$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c" |
| 2156 | 2159 | "$(OBJDIR)\translate$E" $** > $@ |
| 2160 | + | |
| 2161 | +"$(OX)\xsystem$O" : "$(OX)\xsystem_.c" "$(OX)\xsystem.h" | |
| 2162 | + $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xsystem_.c" | |
| 2163 | + | |
| 2164 | +"$(OX)\xsystem_.c" : "$(SRCDIR)\xsystem.c" | |
| 2165 | + "$(OBJDIR)\translate$E" $** > $@ | |
| 2157 | 2166 | |
| 2158 | 2167 | "$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h" |
| 2159 | 2168 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c" |
| 2160 | 2169 | |
| 2161 | 2170 | "$(OX)\zip_.c" : "$(SRCDIR)\zip.c" |
| @@ -2311,12 +2320,13 @@ | ||
| 2311 | 2320 | "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \ |
| 2312 | 2321 | "$(OX)\winfile_.c":"$(OX)\winfile.h" \ |
| 2313 | 2322 | "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \ |
| 2314 | 2323 | "$(OX)\xfer_.c":"$(OX)\xfer.h" \ |
| 2315 | 2324 | "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \ |
| 2325 | + "$(OX)\xsystem_.c":"$(OX)\xsystem.h" \ | |
| 2316 | 2326 | "$(OX)\zip_.c":"$(OX)\zip.h" \ |
| 2317 | 2327 | "$(SRCDIR_extsrc)\pikchr.c":"$(OX)\pikchr.h" \ |
| 2318 | 2328 | "$(SRCDIR_extsrc)\sqlite3.h" \ |
| 2319 | 2329 | "$(SRCDIR)\th.h" \ |
| 2320 | 2330 | "$(OX)\VERSION.h" \ |
| 2321 | 2331 | "$(SRCDIR_extsrc)\cson_amalgamation.h" |
| 2322 | 2332 | @copy /Y nul: $@ |
| 2323 | 2333 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -510,10 +510,11 @@ | |
| 510 | "$(OX)\wikiformat_.c" \ |
| 511 | "$(OX)\winfile_.c" \ |
| 512 | "$(OX)\winhttp_.c" \ |
| 513 | "$(OX)\xfer_.c" \ |
| 514 | "$(OX)\xfersetup_.c" \ |
| 515 | "$(OX)\zip_.c" \ |
| 516 | "$(SRCDIR_extsrc)\pikchr.c" |
| 517 | |
| 518 | EXTRA_FILES = "$(SRCDIR)\..\extsrc\pikchr-worker.js" \ |
| 519 | "$(SRCDIR)\..\extsrc\pikchr.js" \ |
| @@ -784,10 +785,11 @@ | |
| 784 | "$(OX)\wikiformat$O" \ |
| 785 | "$(OX)\winfile$O" \ |
| 786 | "$(OX)\winhttp$O" \ |
| 787 | "$(OX)\xfer$O" \ |
| 788 | "$(OX)\xfersetup$O" \ |
| 789 | "$(OX)\zip$O" \ |
| 790 | "$(OX)\fossil.res" |
| 791 | |
| 792 | |
| 793 | !ifndef BASEAPPNAME |
| @@ -1035,10 +1037,11 @@ | |
| 1035 | echo "$(OX)\wikiformat.obj" >> $@ |
| 1036 | echo "$(OX)\winfile.obj" >> $@ |
| 1037 | echo "$(OX)\winhttp.obj" >> $@ |
| 1038 | echo "$(OX)\xfer.obj" >> $@ |
| 1039 | echo "$(OX)\xfersetup.obj" >> $@ |
| 1040 | echo "$(OX)\zip.obj" >> $@ |
| 1041 | echo $(LIBS) >> $@ |
| 1042 | |
| 1043 | "$(OBJDIR)\translate$E": "$(SRCDIR_tools)\translate.c" |
| 1044 | $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $** |
| @@ -2152,10 +2155,16 @@ | |
| 2152 | "$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h" |
| 2153 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c" |
| 2154 | |
| 2155 | "$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c" |
| 2156 | "$(OBJDIR)\translate$E" $** > $@ |
| 2157 | |
| 2158 | "$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h" |
| 2159 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c" |
| 2160 | |
| 2161 | "$(OX)\zip_.c" : "$(SRCDIR)\zip.c" |
| @@ -2311,12 +2320,13 @@ | |
| 2311 | "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \ |
| 2312 | "$(OX)\winfile_.c":"$(OX)\winfile.h" \ |
| 2313 | "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \ |
| 2314 | "$(OX)\xfer_.c":"$(OX)\xfer.h" \ |
| 2315 | "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \ |
| 2316 | "$(OX)\zip_.c":"$(OX)\zip.h" \ |
| 2317 | "$(SRCDIR_extsrc)\pikchr.c":"$(OX)\pikchr.h" \ |
| 2318 | "$(SRCDIR_extsrc)\sqlite3.h" \ |
| 2319 | "$(SRCDIR)\th.h" \ |
| 2320 | "$(OX)\VERSION.h" \ |
| 2321 | "$(SRCDIR_extsrc)\cson_amalgamation.h" |
| 2322 | @copy /Y nul: $@ |
| 2323 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -510,10 +510,11 @@ | |
| 510 | "$(OX)\wikiformat_.c" \ |
| 511 | "$(OX)\winfile_.c" \ |
| 512 | "$(OX)\winhttp_.c" \ |
| 513 | "$(OX)\xfer_.c" \ |
| 514 | "$(OX)\xfersetup_.c" \ |
| 515 | "$(OX)\xsystem_.c" \ |
| 516 | "$(OX)\zip_.c" \ |
| 517 | "$(SRCDIR_extsrc)\pikchr.c" |
| 518 | |
| 519 | EXTRA_FILES = "$(SRCDIR)\..\extsrc\pikchr-worker.js" \ |
| 520 | "$(SRCDIR)\..\extsrc\pikchr.js" \ |
| @@ -784,10 +785,11 @@ | |
| 785 | "$(OX)\wikiformat$O" \ |
| 786 | "$(OX)\winfile$O" \ |
| 787 | "$(OX)\winhttp$O" \ |
| 788 | "$(OX)\xfer$O" \ |
| 789 | "$(OX)\xfersetup$O" \ |
| 790 | "$(OX)\xsystem$O" \ |
| 791 | "$(OX)\zip$O" \ |
| 792 | "$(OX)\fossil.res" |
| 793 | |
| 794 | |
| 795 | !ifndef BASEAPPNAME |
| @@ -1035,10 +1037,11 @@ | |
| 1037 | echo "$(OX)\wikiformat.obj" >> $@ |
| 1038 | echo "$(OX)\winfile.obj" >> $@ |
| 1039 | echo "$(OX)\winhttp.obj" >> $@ |
| 1040 | echo "$(OX)\xfer.obj" >> $@ |
| 1041 | echo "$(OX)\xfersetup.obj" >> $@ |
| 1042 | echo "$(OX)\xsystem.obj" >> $@ |
| 1043 | echo "$(OX)\zip.obj" >> $@ |
| 1044 | echo $(LIBS) >> $@ |
| 1045 | |
| 1046 | "$(OBJDIR)\translate$E": "$(SRCDIR_tools)\translate.c" |
| 1047 | $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $** |
| @@ -2152,10 +2155,16 @@ | |
| 2155 | "$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h" |
| 2156 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c" |
| 2157 | |
| 2158 | "$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c" |
| 2159 | "$(OBJDIR)\translate$E" $** > $@ |
| 2160 | |
| 2161 | "$(OX)\xsystem$O" : "$(OX)\xsystem_.c" "$(OX)\xsystem.h" |
| 2162 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xsystem_.c" |
| 2163 | |
| 2164 | "$(OX)\xsystem_.c" : "$(SRCDIR)\xsystem.c" |
| 2165 | "$(OBJDIR)\translate$E" $** > $@ |
| 2166 | |
| 2167 | "$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h" |
| 2168 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c" |
| 2169 | |
| 2170 | "$(OX)\zip_.c" : "$(SRCDIR)\zip.c" |
| @@ -2311,12 +2320,13 @@ | |
| 2320 | "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \ |
| 2321 | "$(OX)\winfile_.c":"$(OX)\winfile.h" \ |
| 2322 | "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \ |
| 2323 | "$(OX)\xfer_.c":"$(OX)\xfer.h" \ |
| 2324 | "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \ |
| 2325 | "$(OX)\xsystem_.c":"$(OX)\xsystem.h" \ |
| 2326 | "$(OX)\zip_.c":"$(OX)\zip.h" \ |
| 2327 | "$(SRCDIR_extsrc)\pikchr.c":"$(OX)\pikchr.h" \ |
| 2328 | "$(SRCDIR_extsrc)\sqlite3.h" \ |
| 2329 | "$(SRCDIR)\th.h" \ |
| 2330 | "$(OX)\VERSION.h" \ |
| 2331 | "$(SRCDIR_extsrc)\cson_amalgamation.h" |
| 2332 | @copy /Y nul: $@ |
| 2333 |