| | @@ -605,14 +605,11 @@ |
| 605 | 605 | if( g.cgiOutput && once ){ |
| 606 | 606 | once = 0; |
| 607 | 607 | cgi_printf("<p class=\"generalError\">%h</p>", z); |
| 608 | 608 | cgi_reply(); |
| 609 | 609 | }else if( !g.fQuiet ){ |
| 610 | | - char *zOut = mprintf("%s: %s\n", g.argv[0], z); |
| 611 | | - fossil_force_newline(); |
| 612 | | - fossil_puts(zOut, 1); |
| 613 | | - fossil_free(zOut); |
| 610 | + fossil_trace("%s: %s\n", g.argv[0], z); |
| 614 | 611 | } |
| 615 | 612 | } |
| 616 | 613 | free(z); |
| 617 | 614 | db_force_rollback(); |
| 618 | 615 | fossil_exit(rc); |
| | @@ -636,17 +633,14 @@ |
| 636 | 633 | else |
| 637 | 634 | #endif |
| 638 | 635 | { |
| 639 | 636 | if( g.cgiOutput ){ |
| 640 | 637 | g.cgiOutput = 0; |
| 641 | | - cgi_printf("<p class=\"generalError\">%h</p>", z); |
| 638 | + cgi_printf("<p class=\"generalError\">\n%h\n</p>\n", z); |
| 642 | 639 | cgi_reply(); |
| 643 | 640 | }else if( !g.fQuiet ){ |
| 644 | | - char *zOut = mprintf("\r%s: %s\n", g.argv[0], z); |
| 645 | | - fossil_force_newline(); |
| 646 | | - fossil_puts(zOut, 1); |
| 647 | | - fossil_free(zOut); |
| 641 | + fossil_trace("%s: %s\n", g.argv[0], z); |
| 648 | 642 | } |
| 649 | 643 | } |
| 650 | 644 | free(z); |
| 651 | 645 | db_force_rollback(); |
| 652 | 646 | fossil_exit(rc); |
| | @@ -679,17 +673,14 @@ |
| 679 | 673 | } else |
| 680 | 674 | #endif |
| 681 | 675 | { |
| 682 | 676 | if( g.cgiOutput ){ |
| 683 | 677 | g.cgiOutput = 0; |
| 684 | | - cgi_printf("<p class=\"generalError\">%h</p>", z); |
| 678 | + cgi_printf("<p class=\"generalError\">\n%h\n</p>\n", z); |
| 685 | 679 | cgi_reply(); |
| 686 | 680 | }else{ |
| 687 | | - char *zOut = mprintf("\r%s: %s\n", g.argv[0], z); |
| 688 | | - fossil_force_newline(); |
| 689 | | - fossil_puts(zOut, 1); |
| 690 | | - fossil_free(zOut); |
| 681 | + fossil_trace("%s: %s\n", g.argv[0], z); |
| 691 | 682 | } |
| 692 | 683 | } |
| 693 | 684 | db_force_rollback(); |
| 694 | 685 | fossil_exit(rc); |
| 695 | 686 | } |
| | @@ -707,16 +698,13 @@ |
| 707 | 698 | json_warn( FSL_JSON_W_UNKNOWN, z ); |
| 708 | 699 | }else |
| 709 | 700 | #endif |
| 710 | 701 | { |
| 711 | 702 | if( g.cgiOutput ){ |
| 712 | | - cgi_printf("<p class=\"generalError\">%h</p>", z); |
| 703 | + cgi_printf("<p class=\"generalError\">\n%h\n</p>\n", z); |
| 713 | 704 | }else{ |
| 714 | | - char *zOut = mprintf("\r%s: %s\n", g.argv[0], z); |
| 715 | | - fossil_force_newline(); |
| 716 | | - fossil_puts(zOut, 1); |
| 717 | | - fossil_free(zOut); |
| 705 | + fossil_trace("%s: %s\n", g.argv[0], z); |
| 718 | 706 | } |
| 719 | 707 | } |
| 720 | 708 | free(z); |
| 721 | 709 | } |
| 722 | 710 | |
| | @@ -747,13 +735,11 @@ |
| 747 | 735 | ** Who knows why - this is just the way windows works. |
| 748 | 736 | */ |
| 749 | 737 | char *zNewCmd = mprintf("\"%s\"", zOrigCmd); |
| 750 | 738 | WCHAR *zUnicode = fossil_utf8_to_unicode(zNewCmd); |
| 751 | 739 | if( g.fSystemTrace ) { |
| 752 | | - char *zOut = mprintf("SYSTEM: %s\n", zNewCmd); |
| 753 | | - fossil_puts(zOut, 1); |
| 754 | | - fossil_free(zOut); |
| 740 | + fossil_trace("SYSTEM: %s\n", zNewCmd); |
| 755 | 741 | } |
| 756 | 742 | rc = _wsystem(zUnicode); |
| 757 | 743 | fossil_unicode_free(zUnicode); |
| 758 | 744 | free(zNewCmd); |
| 759 | 745 | #else |
| | @@ -1225,15 +1211,17 @@ |
| 1225 | 1211 | } |
| 1226 | 1212 | zRepo = "/"; |
| 1227 | 1213 | }else{ |
| 1228 | 1214 | for(i=strlen(zDir)-1; i>0 && zDir[i]!='/'; i--){} |
| 1229 | 1215 | if( zDir[i]!='/' ) fossil_panic("bad repository name: %s", zRepo); |
| 1230 | | - zDir[i] = 0; |
| 1231 | | - if( chdir(zDir) || chroot(zDir) || chdir("/") ){ |
| 1232 | | - fossil_fatal("unable to chroot into %s", zDir); |
| 1216 | + if( i>0 ){ |
| 1217 | + zDir[i] = 0; |
| 1218 | + if( chdir(zDir) || chroot(zDir) || chdir("/") ){ |
| 1219 | + fossil_fatal("unable to chroot into %s", zDir); |
| 1220 | + } |
| 1221 | + zDir[i] = '/'; |
| 1233 | 1222 | } |
| 1234 | | - zDir[i] = '/'; |
| 1235 | 1223 | zRepo = &zDir[i]; |
| 1236 | 1224 | } |
| 1237 | 1225 | if( stat(zRepo, &sStat)!=0 ){ |
| 1238 | 1226 | fossil_fatal("cannot stat() repository: %s", zRepo); |
| 1239 | 1227 | } |
| 1240 | 1228 | |