Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | <pre>Minor additional fixes related to [c8c0b78c84]: - Use _wsystem() in stead of system() on Windows - Use g.argv[0] in stead of fossil_nameofexe() where only printing is involved - Use fossil_nameofexe() where fossil_system() is involved - Move the determination of the full windows path to fossil_nameofexec, so g.argv[0] can always be the unmodified argv[0] - g.argv[0] and fossil_nameofexec() are in utf-8, so we cannot use fprintf directly. Exception: when printing malloc errors.</pre> |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | ticket-c8c0b78c84 |
| Files: | files | file ages | folders |
| SHA1: |
be06861f3cc1f16a3b15e2430cf2b3a0 |
| User & Date: | jan.nijtmans 2012-09-02 19:39:43.206 |
| Original Comment: | Minor additional fixes related to [c8c0b78c84]: - Use _wsystem() in stead of system() on Windows - Use g.argv[0] in stead of fossil_nameofexe() where only printing is involved - Use fossil_nameofexe() where fossil_system() is involved - Move the determination of the full windows path to fossil_nameofexec, so g.argv[0] can always be the unmodified argv[0] - g.argv[0] and fossil_nameofexec() are in utf-8, so we cannot use fprintf directly. Exception: when printing malloc errors. |
Context
|
2012-09-02
| ||
| 19:39 | <pre>Minor additional fixes related to [c8c0b78c84]: - Use _wsystem() in stead of system() on Windows - Use g.argv[0] in stead of fossil_nameofexe() where only printing is involved - Use fossil_nameofexe() where fossil_system() is involved - Move the determination of the full windows path to fossil_nameofexec, so g.argv[0] can always be the unmodified argv[0] - g.argv[0] and fossil_nameofexec() are in utf-8, so we cannot use fprintf directly. Exception: when printing malloc errors.</pre> Closed-Leaf check-in: be06861f3c user: jan.nijtmans tags: ticket-c8c0b78c84 | |
| 12:50 | fix cross-compilation of mingw target on Linux/Darwin check-in: 9c0e1caec5 user: jan.nijtmans tags: trunk | |
Changes
Changes to src/branch.c.
| ︙ | ︙ | |||
163 164 165 166 167 168 169 |
if( g.argc==3 ){
fossil_print(
"\n"
"Note: the local check-out has not been updated to the new\n"
" branch. To begin working on the new branch, do this:\n"
"\n"
" %s update %s\n",
| | | 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
if( g.argc==3 ){
fossil_print(
"\n"
"Note: the local check-out has not been updated to the new\n"
" branch. To begin working on the new branch, do this:\n"
"\n"
" %s update %s\n",
g.argv[0], zBranch
);
}
/* Commit */
db_end_transaction(0);
|
| ︙ | ︙ |
Changes to src/cgi.c.
| ︙ | ︙ | |||
1296 1297 1298 1299 1300 1301 1302 |
listen(listener,10);
if( iPort>mnPort ){
fossil_print("Listening for HTTP requests on TCP port %d\n", iPort);
fflush(stdout);
}
if( zBrowser ){
zBrowser = mprintf(zBrowser, iPort);
| | | 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 |
listen(listener,10);
if( iPort>mnPort ){
fossil_print("Listening for HTTP requests on TCP port %d\n", iPort);
fflush(stdout);
}
if( zBrowser ){
zBrowser = mprintf(zBrowser, iPort);
if( fossil_system(zBrowser)<0 ){
fossil_warning("cannot start browser: %s\n", zBrowser);
}
}
while( 1 ){
if( nchildren>MAX_PARALLEL ){
/* Slow down if connections are arriving too fast */
sleep( nchildren-MAX_PARALLEL );
|
| ︙ | ︙ |
Changes to src/configure.c.
| ︙ | ︙ | |||
911 912 913 914 915 916 917 |
}else if( fossil_strcmp(zName,"@reportfmt")==0 ){
db_multi_exec("DELETE FROM reportfmt");
}
}
db_end_transaction(0);
fossil_print("Configuration reset to factory defaults.\n");
fossil_print("To recover, use: %s %s import %s\n",
| | | 911 912 913 914 915 916 917 918 919 920 921 922 923 924 |
}else if( fossil_strcmp(zName,"@reportfmt")==0 ){
db_multi_exec("DELETE FROM reportfmt");
}
}
db_end_transaction(0);
fossil_print("Configuration reset to factory defaults.\n");
fossil_print("To recover, use: %s %s import %s\n",
g.argv[0], g.argv[1], zBackup);
}else
{
fossil_fatal("METHOD should be one of:"
" export import merge pull push reset");
}
}
|
Changes to src/db.c.
| ︙ | ︙ | |||
90 91 92 93 94 95 96 |
}
else if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<h1>Database Error</h1>\n"
"<pre>%h</pre><p>%s</p>", z, zRebuildMsg);
cgi_reply();
}else{
| | > > | 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
}
else if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<h1>Database Error</h1>\n"
"<pre>%h</pre><p>%s</p>", z, zRebuildMsg);
cgi_reply();
}else{
char *zOut = mprintf("%s: %s\n\n%s", g.argv[0], z, zRebuildMsg);
fossil_puts(zOut, 1);
free(zOut);
}
free(z);
db_force_rollback();
fossil_exit(rc);
}
/*
|
| ︙ | ︙ |
Changes to src/json.c.
| ︙ | ︙ | |||
346 347 348 349 350 351 352 |
int const rc = cson_array_append( g.json.gc.a, v );
assert( NULL != g.json.gc.a );
if( 0 != rc ){
cson_value_free( v );
}
assert( (0==rc) && "Adding item to GC failed." );
if(0!=rc){
| | | 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 |
int const rc = cson_array_append( g.json.gc.a, v );
assert( NULL != g.json.gc.a );
if( 0 != rc ){
cson_value_free( v );
}
assert( (0==rc) && "Adding item to GC failed." );
if(0!=rc){
fprintf(stderr,"%s: FATAL: alloc error.\n", g.argv[0])
/* reminder: allocation error is the only reasonable cause of
error here, provided g.json.gc.a and v are not NULL.
*/
;
fossil_exit(1)/*not fossil_panic() b/c it might land us somewhere
where this function is called again.
*/;
|
| ︙ | ︙ | |||
1626 1627 1628 1629 1630 1631 1632 |
}
resp = json_create_response(rc, msg, NULL);
if(!resp){
/* about the only error case here is out-of-memory. DO NOT
call fossil_panic() here because that calls this function.
*/
fprintf(stderr, "%s: Fatal error: could not allocate "
| | | 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 |
}
resp = json_create_response(rc, msg, NULL);
if(!resp){
/* about the only error case here is out-of-memory. DO NOT
call fossil_panic() here because that calls this function.
*/
fprintf(stderr, "%s: Fatal error: could not allocate "
"response object.\n", g.argv[0]);
fossil_exit(1);
}
if( g.isHTTP ){
if(alsoOutput){
json_send_response(resp);
}else{
/* almost a duplicate of json_send_response() :( */
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
350 351 352 353 354 355 356 | unsigned int i, j, k; /* Loop counters */ int n; /* Number of bytes in one line */ char *z; /* General use string pointer */ char **newArgv; /* New expanded g.argv under construction */ char const * zFileName; /* input file name */ FILE * zInFile; /* input FILE */ int foundBom = -1; /* -1= not searched yet, 0 = no; 1=yes */ | < < < < < < | < | 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 |
unsigned int i, j, k; /* Loop counters */
int n; /* Number of bytes in one line */
char *z; /* General use string pointer */
char **newArgv; /* New expanded g.argv under construction */
char const * zFileName; /* input file name */
FILE * zInFile; /* input FILE */
int foundBom = -1; /* -1= not searched yet, 0 = no; 1=yes */
g.argc = argc;
g.argv = argv;
for(i=0; i<g.argc; i++) g.argv[i] = fossil_mbcs_to_utf8(g.argv[i]);
for(i=1; i<g.argc-1; i++){
z = g.argv[i];
if( z[0]!='-' ) continue;
z++;
if( z[0]=='-' ) z++;
if( z[0]==0 ) return; /* Stop searching at "--" */
if( fossil_strcmp(z, "args")==0 ) break;
|
| ︙ | ︙ | |||
533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 |
*/
static int mainInFatalError = 0;
/*
** Return the name of the current executable.
*/
const char *fossil_nameofexe(void){
return g.argv[0];
}
/*
** Exit. Take care to close the database first.
*/
NORETURN void fossil_exit(int rc){
db_close(1);
| > > > > > > > > > > | 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 |
*/
static int mainInFatalError = 0;
/*
** Return the name of the current executable.
*/
const char *fossil_nameofexe(void){
#ifdef _WIN32
static const char *z = 0;
if (!z) {
wchar_t buf[MAX_PATH];
GetModuleFileNameW(NULL, buf, MAX_PATH);
z = fossil_unicode_to_utf8(buf);
}
return z;
#else
return g.argv[0];
#endif
}
/*
** Exit. Take care to close the database first.
*/
NORETURN void fossil_exit(int rc){
db_close(1);
|
| ︙ | ︙ | |||
572 573 574 575 576 577 578 |
#endif
{
if( g.cgiOutput && once ){
once = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else if( !g.fQuiet ){
| | > | 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 |
#endif
{
if( g.cgiOutput && once ){
once = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else if( !g.fQuiet ){
char *zOut = mprintf("%s: %s\n", g.argv[0], z);
fossil_puts(zOut, 1);
free(zOut);
}
}
free(z);
db_force_rollback();
fossil_exit(rc);
}
|
| ︙ | ︙ | |||
604 605 606 607 608 609 610 |
#endif
{
if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else if( !g.fQuiet ){
| | > | 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 |
#endif
{
if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else if( !g.fQuiet ){
char *zOut = mprintf("\r%s: %s\n", g.argv[0], z);
fossil_puts(zOut, 1);
free(zOut);
}
}
free(z);
db_force_rollback();
fossil_exit(rc);
}
|
| ︙ | ︙ | |||
645 646 647 648 649 650 651 |
#endif
{
if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else{
| | | 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 |
#endif
{
if( g.cgiOutput ){
g.cgiOutput = 0;
cgi_printf("<p class=\"generalError\">%h</p>", z);
cgi_reply();
}else{
char *zOut = mprintf("\r%s: %s\n", g.argv[0], z);
fossil_puts(zOut, 1);
free(zOut);
}
}
db_force_rollback();
fossil_exit(rc);
}
|
| ︙ | ︙ | |||
671 672 673 674 675 676 677 |
json_warn( FSL_JSON_W_UNKNOWN, z );
}else
#endif
{
if( g.cgiOutput ){
cgi_printf("<p class=\"generalError\">%h</p>", z);
}else{
| | | 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 |
json_warn( FSL_JSON_W_UNKNOWN, z );
}else
#endif
{
if( g.cgiOutput ){
cgi_printf("<p class=\"generalError\">%h</p>", z);
}else{
char *zOut = mprintf("\r%s: %s\n", g.argv[0], z);
fossil_puts(zOut, 1);
free(zOut);
}
}
free(z);
}
|
| ︙ | ︙ | |||
706 707 708 709 710 711 712 |
int fossil_system(const char *zOrigCmd){
int rc;
#if defined(_WIN32)
/* On windows, we have to put double-quotes around the entire command.
** Who knows why - this is just the way windows works.
*/
char *zNewCmd = mprintf("\"%s\"", zOrigCmd);
| | | > > > > | | | 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 |
int fossil_system(const char *zOrigCmd){
int rc;
#if defined(_WIN32)
/* On windows, we have to put double-quotes around the entire command.
** Who knows why - this is just the way windows works.
*/
char *zNewCmd = mprintf("\"%s\"", zOrigCmd);
wchar_t *zUnicode = fossil_utf8_to_unicode(zNewCmd);
if( g.fSystemTrace ) {
char *zOut = mprintf("SYSTEM: %s\n", zNewCmd);
fossil_puts(zOut, 1);
free(zOut);
}
rc = _wsystem(zUnicode);
fossil_mbcs_free(zUnicode);
free(zNewCmd);
#else
/* On unix, evaluate the command directly.
*/
if( g.fSystemTrace ) fprintf(stderr, "SYSTEM: %s\n", zOrigCmd);
rc = system(zOrigCmd);
#endif
|
| ︙ | ︙ | |||
779 780 781 782 783 784 785 |
fossil_warning("%s: %s", sqlite_error_code_name(iCode), zErrmsg);
}
/*
** Print a usage comment and quit
*/
void usage(const char *zFormat){
| | | 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 |
fossil_warning("%s: %s", sqlite_error_code_name(iCode), zErrmsg);
}
/*
** Print a usage comment and quit
*/
void usage(const char *zFormat){
fossil_fatal("Usage: %s %s %s\n", g.argv[0], g.argv[1], zFormat);
}
/*
** Remove n elements from g.argv beginning with the i-th element.
*/
void remove_from_argv(int i, int n){
int j;
|
| ︙ | ︙ | |||
940 941 942 943 944 945 946 |
** %fossil help --test Show test commands only
** %fossil help --aux Show auxiliary commands only
*/
void help_cmd(void){
int rc, idx;
const char *z;
if( g.argc<3 ){
| | | 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 |
** %fossil help --test Show test commands only
** %fossil help --aux Show auxiliary commands only
*/
void help_cmd(void){
int rc, idx;
const char *z;
if( g.argc<3 ){
z = g.argv[0];
fossil_print(
"Usage: %s help COMMAND\n"
"Common COMMANDs: (use \"%s help --all\" for a complete list)\n",
z, z);
command_list(0, CMDFLAG_1ST_TIER);
version_cmd();
return;
|
| ︙ | ︙ | |||
979 980 981 982 983 984 985 |
z = aCmdHelp[idx];
if( z==0 ){
fossil_fatal("no help available for the %s command",
aCommand[idx].zName);
}
while( *z ){
if( *z=='%' && strncmp(z, "%fossil", 7)==0 ){
| | | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 |
z = aCmdHelp[idx];
if( z==0 ){
fossil_fatal("no help available for the %s command",
aCommand[idx].zName);
}
while( *z ){
if( *z=='%' && strncmp(z, "%fossil", 7)==0 ){
fossil_print("%s", g.argv[0]);
z += 7;
}else{
putchar(*z);
z++;
}
}
putchar('\n');
|
| ︙ | ︙ |