- Timestamp:
- Sep 14, 2008, 7:31:16 PM (17 years ago)
- Location:
- trunk/src/kash
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kash/Makefile.kmk
r1784 r1785 35 35 kash_DEFS = lint SHELL SMALL 36 36 kash_DEFS += SH_STUB_MODE # for the time being. 37 kash_DEFS.debug = DEBUG 37 kash_DEFS.debug = DEBUG=2 38 38 kash_DEFS.linux = BSD 39 39 kash_DEFS.solaris = BSD -
trunk/src/kash/jobs.c
r1240 r1785 848 848 else 849 849 pgrp = jp->ps[0].pid; 850 /* This can fail because we are doing it in the parent also */ 850 /* This can fail because we are doing it in the parent also. 851 And we must ignore SIGTTOU at this point or we'll be stopped! */ 851 852 (void)sh_setpgid(psh, 0, pgrp); 852 853 if (mode == FORK_FG) { -
trunk/src/kash/shfile.c
r1286 r1785 26 26 27 27 #include "shfile.h" 28 #include "shinstance.h" /* TRACE2 */ 28 29 #include <stdlib.h> 29 30 #include <stdio.h> … … 43 44 int shfile_open(shfdtab *pfdtab, const char *name, unsigned flags, mode_t mode) 44 45 { 45 #ifdef SH_PURE_STUB_MODE 46 return -1; 47 #elif defined(SH_STUB_MODE) 48 return open(name, flags, mode); 49 #else 50 #endif 46 int fd; 47 48 #ifdef SH_PURE_STUB_MODE 49 fd = -1; 50 #elif defined(SH_STUB_MODE) 51 fd = open(name, flags, mode); 52 #else 53 #endif 54 55 TRACE2((NULL, "shfile_open(%p:{%s}, %#x, 0%o) -> %d [%d]\n", name, name, flags, mode, fd, errno)); 56 return fd; 51 57 } 52 58 … … 67 73 int shfile_dup(shfdtab *pfdtab, int fd) 68 74 { 69 #ifdef SH_PURE_STUB_MODE 70 return -1; 71 #elif defined(SH_STUB_MODE) 72 return dup(fd); 73 #else 74 #endif 75 int rc; 76 #ifdef SH_PURE_STUB_MODE 77 rc = -1; 78 #elif defined(SH_STUB_MODE) 79 rc = dup(fd); 80 #else 81 #endif 82 83 TRACE2((NULL, "shfile_dup(%d) -> %d [%d]\n", fd, rc, errno)); 84 return rc; 75 85 } 76 86 77 87 int shfile_close(shfdtab *pfdtab, unsigned fd) 78 88 { 79 #ifdef SH_PURE_STUB_MODE 80 return -1; 81 #elif defined(SH_STUB_MODE) 82 return close(fd); 83 #else 84 #endif 89 int rc; 90 91 #ifdef SH_PURE_STUB_MODE 92 rc = -1; 93 #elif defined(SH_STUB_MODE) 94 rc = close(fd); 95 #else 96 #endif 97 98 TRACE2((NULL, "shfile_close(%d) -> %d [%d]\n", fd, rc, errno)); 99 return rc; 85 100 } 86 101 … … 202 217 int shfile_isatty(shfdtab *pfdtab, int fd) 203 218 { 204 #ifdef SH_PURE_STUB_MODE 205 return 0; 206 #elif defined(SH_STUB_MODE) 207 return isatty(fd); 208 #else 209 #endif 219 int rc; 220 221 #ifdef SH_PURE_STUB_MODE 222 rc = 0; 223 #elif defined(SH_STUB_MODE) 224 rc = isatty(fd); 225 #else 226 #endif 227 228 TRACE2((NULL, "isatty(%d) -> %d [%d]\n", fd, rc, errno)); 229 return rc; 210 230 } 211 231 … … 213 233 int shfile_cloexec(shfdtab *pfdtab, int fd, int closeit) 214 234 { 215 #ifdef SH_PURE_STUB_MODE 216 return -1; 217 #elif defined(SH_STUB_MODE) 218 # ifdef _MSC_VER 219 return -1; 220 # else 221 int rc = fcntl(fd, F_SETFD, fcntl(fd, F_GETFD, 0) 222 | (closeit ? FD_CLOEXEC : 0)); 223 //fprintf(stderr, "shfile_cloexec(%d, %d) -> %d\n", fd, closeit, rc); 224 return rc; 225 # endif 226 #else 227 #endif 228 235 int rc; 236 237 #ifdef SH_PURE_STUB_MODE 238 rc = -1; 239 #elif defined(SH_STUB_MODE) 240 # ifdef _MSC_VER 241 rc = -1; 242 # else 243 rc = fcntl(fd, F_SETFD, fcntl(fd, F_GETFD, 0) 244 | (closeit ? FD_CLOEXEC : 0)); 245 # endif 246 #else 247 #endif 248 249 TRACE2((NULL, "shfile_cloexec(%d, %d) -> %d [%d]\n", fd, closeit, rc, errno)); 250 return rc; 229 251 } 230 252 … … 232 254 int shfile_ioctl(shfdtab *pfdtab, int fd, unsigned long request, void *buf) 233 255 { 234 #ifdef SH_PURE_STUB_MODE 235 return -1; 236 #elif defined(SH_STUB_MODE) 237 # ifdef _MSC_VER 238 return -1; 239 # else 240 int rc = ioctl(fd, request, buf); 241 //fprintf(stderr, "ioctl(%d, %#x, %p) -> %d\n", fd, request, buf, rc); 242 return rc; 243 # endif 244 #else 245 #endif 256 int rc; 257 258 #ifdef SH_PURE_STUB_MODE 259 rc = -1; 260 #elif defined(SH_STUB_MODE) 261 # ifdef _MSC_VER 262 rc = -1; 263 # else 264 rc = ioctl(fd, request, buf); 265 # endif 266 #else 267 #endif 268 269 TRACE2((NULL, "ioctl(%d, %#x, %p) -> %d\n", fd, request, buf, rc)); 270 return rc; 246 271 } 247 272 -
trunk/src/kash/shinstance.c
r1784 r1785 320 320 g_sig_state[signo].sa = old; 321 321 #else 322 g_sig_state[signo].sa.sa_handle = SIG_DFL;322 g_sig_state[signo].sa.sa_handler = SIG_DFL; 323 323 g_sig_state[signo].sa.sa_flags = 0; 324 324 g_sig_state[signo].sa.sa_mask = shold.sh_mask; 325 325 #endif 326 TRACE2((psh, "sh_int_lazy_init_sigaction: signo=%d:%s sa_handler=%p sa_flags=%#x\n", 327 signo, sys_signame[signo], g_sig_state[signo].sa.sa_handler, g_sig_state[signo].sa.sa_flags)); 326 328 327 329 /* update all shells */ … … 345 347 static void sh_sig_common_handler(int signo) 346 348 { 347 349 fprintf(stderr, "sh_sig_common_handler: signo=%d:%s\n", signo, sys_signame[signo]); 348 350 } 349 351 … … 351 353 int sh_sigaction(shinstance *psh, int signo, const struct shsigaction *newp, struct shsigaction *oldp) 352 354 { 353 printf("sh_sigaction: signo=%d newp=%p oldp=%p\n", signo, newp, oldp); 355 if (newp) 356 TRACE2((psh, "sh_sigaction: signo=%d:%s newp=%p:{.sh_handler=%p, .sh_flags=%#x} oldp=%p\n", 357 signo, sys_signame[signo], newp, newp->sh_handler, newp->sh_flags, oldp)); 358 else 359 TRACE2((psh, "sh_sigaction: signo=%d:%s newp=NULL oldp=%p\n", signo, sys_signame[signo], oldp)); 354 360 355 361 /* … … 422 428 g_sig_state[signo].sa.sa_handler = sh_sig_common_handler; 423 429 else if (g_sig_state[signo].num_ignore) 424 g_sig_state[signo].sa.sa_handler = SIG_ DFL;430 g_sig_state[signo].sa.sa_handler = SIG_IGN; 425 431 else 426 432 g_sig_state[signo].sa.sa_handler = SIG_DFL; 427 433 g_sig_state[signo].sa.sa_flags = psh->sigactions[signo].sh_flags & SA_RESTART; 428 434 435 TRACE2((psh, "sh_sigaction: setting signo=%d:%s to {.sa_handler=%p, .sa_flags=%#x}\n", 436 signo, sys_signame[signo], g_sig_state[signo].sa.sa_handler, g_sig_state[signo].sa.sa_flags)); 429 437 # ifdef _MSC_VER 430 438 if (signal(signo, g_sig_state[signo].sa.sa_handler) == SIG_ERR) … … 533 541 void sh_abort(shinstance *psh) 534 542 { 535 #ifdef SH_PURE_STUB_MODE 536 #elif defined(SH_STUB_MODE) 537 (void)psh; 543 TRACE2((psh, "sh_abort\n")); 544 545 #ifdef SH_PURE_STUB_MODE 546 #elif defined(SH_STUB_MODE) 538 547 abort(); 539 548 #else 540 549 #endif 550 551 TRACE2((psh, "sh_abort returns!\n")); 552 (void)psh; 541 553 } 542 554 543 555 void sh_raise_sigint(shinstance *psh) 544 556 { 557 TRACE2((psh, "sh_raise(SIGINT)\n")); 558 545 559 #ifdef SH_PURE_STUB_MODE 546 560 #elif defined(SH_STUB_MODE) … … 549 563 #else 550 564 #endif 565 566 TRACE2((psh, "sh_raise(SIGINT) returns\n")); 567 (void)psh; 551 568 } 552 569 553 570 int sh_kill(shinstance *psh, pid_t pid, int signo) 554 571 { 572 int rc; 573 574 #ifdef SH_PURE_STUB_MODE 575 rc = -1; 576 #elif defined(SH_STUB_MODE) 577 # ifdef _MSC_VER 578 rc = -1; 579 # else 580 //fprintf(stderr, "kill(%d, %d)\n", pid, signo); 581 rc = kill(pid, signo); 582 # endif 583 #else 584 #endif 585 586 TRACE2((psh, "sh_kill(%d, %d) -> %d [%d]\n", pid, signo, rc, errno)); 587 (void)psh; 588 return rc; 589 } 590 591 int sh_killpg(shinstance *psh, pid_t pgid, int signo) 592 { 593 int rc; 594 595 #ifdef SH_PURE_STUB_MODE 596 rc = -1; 597 #elif defined(SH_STUB_MODE) 598 # ifdef _MSC_VER 599 rc = -1; 600 # else 601 //fprintf(stderr, "killpg(%d, %d)\n", pgid, signo); 602 rc = killpg(pgid, signo); 603 # endif 604 #else 605 #endif 606 607 TRACE2((psh, "sh_killpg(%d, %d) -> %d [%d]\n", pgid, signo, rc, errno)); 608 (void)psh; 609 return rc; 610 } 611 612 clock_t sh_times(shinstance *psh, shtms *tmsp) 613 { 614 #ifdef SH_PURE_STUB_MODE 615 return 0; 616 #elif defined(SH_STUB_MODE) 617 (void)psh; 618 # ifdef _MSC_VER 619 return 0; 620 # else 621 return times(tmsp); 622 # endif 623 #else 624 #endif 625 } 626 627 int sh_sysconf_clk_tck(void) 628 { 629 #ifdef SH_PURE_STUB_MODE 630 return 1; 631 #else 632 # ifdef _MSC_VER 633 return CLK_TCK; 634 # else 635 return sysconf(_SC_CLK_TCK); 636 # endif 637 #endif 638 } 639 640 pid_t sh_fork(shinstance *psh) 641 { 642 pid_t pid; 643 TRACE2((psh, "sh_fork\n")); 644 645 #ifdef SH_PURE_STUB_MODE 646 pid = -1; 647 #elif defined(SH_STUB_MODE) 648 # ifdef _MSC_VER 649 pid = -1; 650 # else 651 pid = fork(); 652 # endif 653 #else 654 #endif 655 656 TRACE2((psh, "sh_fork -> %d [%d]\n", pid, errno)); 657 (void)psh; 658 return pid; 659 } 660 661 pid_t sh_waitpid(shinstance *psh, pid_t pid, int *statusp, int flags) 662 { 663 pid_t pidret; 664 665 *statusp = 0; 666 #ifdef SH_PURE_STUB_MODE 667 pidret = -1; 668 #elif defined(SH_STUB_MODE) 669 # ifdef _MSC_VER 670 pidret = -1; 671 # else 672 pidret = waitpid(pid, statusp, flags); 673 # endif 674 #else 675 #endif 676 677 TRACE2((psh, "waitpid(%d, %p, %#x) -> %d [%d] *statusp=%#x (rc=%d)\n", pid, statusp, flags, 678 pidret, errno, *statusp, WEXITSTATUS(*statusp))); 679 (void)psh; 680 return pidret; 681 } 682 683 void sh__exit(shinstance *psh, int rc) 684 { 685 TRACE2((psh, "sh__exit(%d)\n", rc)); 686 (void)psh; 687 555 688 #ifdef SH_PURE_STUB_MODE 556 689 return -1; 557 690 #elif defined(SH_STUB_MODE) 558 (void)psh; 559 # ifdef _MSC_VER 560 return -1; 561 # else 562 //fprintf(stderr, "kill(%d, %d)\n", pid, signo); 563 return kill(pid, signo); 564 # endif 565 #else 566 #endif 567 } 568 569 int sh_killpg(shinstance *psh, pid_t pgid, int signo) 570 { 571 #ifdef SH_PURE_STUB_MODE 572 return -1; 573 #elif defined(SH_STUB_MODE) 574 (void)psh; 575 # ifdef _MSC_VER 576 return -1; 577 # else 578 //fprintf(stderr, "killpg(%d, %d)\n", pgid, signo); 579 return killpg(pgid, signo); 580 # endif 581 #else 582 #endif 583 } 584 585 clock_t sh_times(shinstance *psh, shtms *tmsp) 586 { 587 #ifdef SH_PURE_STUB_MODE 588 return 0; 589 #elif defined(SH_STUB_MODE) 590 (void)psh; 591 # ifdef _MSC_VER 592 return 0; 593 # else 594 return times(tmsp); 595 # endif 596 #else 597 #endif 598 } 599 600 int sh_sysconf_clk_tck(void) 601 { 602 #ifdef SH_PURE_STUB_MODE 603 return 1; 604 #else 605 # ifdef _MSC_VER 606 return CLK_TCK; 607 # else 608 return sysconf(_SC_CLK_TCK); 609 # endif 610 #endif 611 } 612 613 pid_t sh_fork(shinstance *psh) 614 { 615 #ifdef SH_PURE_STUB_MODE 616 return -1; 617 #elif defined(SH_STUB_MODE) 618 (void)psh; 619 # ifdef _MSC_VER 620 return -1; 621 # else 622 return fork(); 623 # endif 624 #else 625 #endif 626 } 627 628 pid_t sh_waitpid(shinstance *psh, pid_t pid, int *statusp, int flags) 629 { 630 *statusp = 0; 631 #ifdef SH_PURE_STUB_MODE 632 return -1; 633 #elif defined(SH_STUB_MODE) 634 (void)psh; 635 # ifdef _MSC_VER 636 return -1; 637 # else 638 pid = waitpid(pid, statusp, flags); 639 //fprintf(stderr, "waitpid -> %d *statusp=%d (rc=%d) flags=%#x\n", pid, *statusp, WEXITSTATUS(*statusp), flags); 691 _exit(rc); 692 #else 693 #endif 694 } 695 696 int sh_execve(shinstance *psh, const char *exe, const char * const *argv, const char * const *envp) 697 { 698 int rc; 699 700 #ifdef DEBUG 701 /* log it all */ 702 TRACE2((psh, "sh_execve(%p:{%s}, %p, %p}\n", exe, exe, argv, envp)); 703 for (rc = 0; argv[rc]; rc++) 704 TRACE2((psh, " argv[%d]=%p:{%s}\n", rc, argv[rc], argv[rc])); 705 #endif 706 707 #ifdef SH_PURE_STUB_MODE 708 rc = -1; 709 #elif defined(SH_STUB_MODE) 710 # ifdef _MSC_VER 711 rc = -1; 712 # else 713 rc = execve(exe, (char **)argv, (char **)envp); 714 # endif 715 #else 716 #endif 717 718 TRACE2((psh, "sh_execve -> %d [%d]\n", rc, errno)); 719 (void)psh; 720 return rc; 721 } 722 723 uid_t sh_getuid(shinstance *psh) 724 { 725 #ifdef SH_PURE_STUB_MODE 726 uid_t uid = 0; 727 #elif defined(SH_STUB_MODE) 728 # ifdef _MSC_VER 729 uid_t uid = 0; 730 # else 731 uid_t uid = getuid(); 732 # endif 733 #else 734 #endif 735 736 TRACE2((psh, "sh_getuid() -> %d [%d]\n", uid, errno)); 737 (void)psh; 738 return uid; 739 } 740 741 uid_t sh_geteuid(shinstance *psh) 742 { 743 #ifdef SH_PURE_STUB_MODE 744 uid_t euid = 0; 745 #elif defined(SH_STUB_MODE) 746 # ifdef _MSC_VER 747 uid_t euid = 0; 748 # else 749 uid_t euid = geteuid(); 750 # endif 751 #else 752 #endif 753 754 TRACE2((psh, "sh_geteuid() -> %d [%d]\n", euid, errno)); 755 (void)psh; 756 return euid; 757 } 758 759 gid_t sh_getgid(shinstance *psh) 760 { 761 #ifdef SH_PURE_STUB_MODE 762 gid_t gid = 0; 763 #elif defined(SH_STUB_MODE) 764 # ifdef _MSC_VER 765 gid_t gid = 0; 766 # else 767 gid_t gid = getgid(); 768 # endif 769 #else 770 #endif 771 772 TRACE2((psh, "sh_getgid() -> %d [%d]\n", gid, errno)); 773 (void)psh; 774 return gid; 775 } 776 777 gid_t sh_getegid(shinstance *psh) 778 { 779 #ifdef SH_PURE_STUB_MODE 780 gid_t egid = 0; 781 #elif defined(SH_STUB_MODE) 782 # ifdef _MSC_VER 783 gid_t egid = 0; 784 # else 785 gid_t egid = getegid(); 786 # endif 787 #else 788 #endif 789 790 TRACE2((psh, "sh_getegid() -> %d [%d]\n", egid, errno)); 791 (void)psh; 792 return egid; 793 } 794 795 pid_t sh_getpid(shinstance *psh) 796 { 797 pid_t pid; 798 799 #ifdef SH_PURE_STUB_MODE 800 pid = 0; 801 #elif defined(SH_STUB_MODE) 802 # ifdef _MSC_VER 803 pid = _getpid(); 804 # else 805 pid = getpid(); 806 # endif 807 #else 808 #endif 809 810 (void)psh; 640 811 return pid; 641 # endif642 #else643 #endif644 }645 646 void sh__exit(shinstance *psh, int rc)647 {648 #ifdef SH_PURE_STUB_MODE649 return -1;650 #elif defined(SH_STUB_MODE)651 (void)psh;652 _exit(rc);653 #else654 #endif655 }656 657 int sh_execve(shinstance *psh, const char *exe, const char * const *argv, const char * const *envp)658 {659 #ifdef SH_PURE_STUB_MODE660 return -1;661 #elif defined(SH_STUB_MODE)662 (void)psh;663 # ifdef _MSC_VER664 return -1;665 # else666 return execve(exe, (char **)argv, (char **)envp);667 # endif668 #else669 #endif670 }671 672 uid_t sh_getuid(shinstance *psh)673 {674 #ifdef SH_PURE_STUB_MODE675 return 0;676 #elif defined(SH_STUB_MODE)677 (void)psh;678 # ifdef _MSC_VER679 return 0;680 # else681 return getuid();682 # endif683 #else684 #endif685 }686 687 uid_t sh_geteuid(shinstance *psh)688 {689 #ifdef SH_PURE_STUB_MODE690 return 0;691 #elif defined(SH_STUB_MODE)692 (void)psh;693 # ifdef _MSC_VER694 return 0;695 # else696 return geteuid();697 # endif698 #else699 #endif700 }701 702 gid_t sh_getgid(shinstance *psh)703 {704 #ifdef SH_PURE_STUB_MODE705 return 0;706 #elif defined(SH_STUB_MODE)707 (void)psh;708 # ifdef _MSC_VER709 return 0;710 # else711 return getgid();712 # endif713 #else714 #endif715 }716 717 gid_t sh_getegid(shinstance *psh)718 {719 #ifdef SH_PURE_STUB_MODE720 return 0;721 #elif defined(SH_STUB_MODE)722 (void)psh;723 # ifdef _MSC_VER724 return 0;725 # else726 return getegid();727 # endif728 #else729 #endif730 }731 732 pid_t sh_getpid(shinstance *psh)733 {734 #ifdef SH_PURE_STUB_MODE735 return 0;736 #elif defined(SH_STUB_MODE)737 (void)psh;738 # ifdef _MSC_VER739 return _getpid();740 # else741 return getpid();742 # endif743 #else744 #endif745 812 } 746 813 … … 748 815 { 749 816 #ifdef SH_PURE_STUB_MODE 750 return 0; 751 #elif defined(SH_STUB_MODE) 752 (void)psh; 753 # ifdef _MSC_VER 754 return _getpid(); 755 # else 756 return getpgrp(); 757 # endif 758 #else 759 #endif 817 pid_t pgrp = 0; 818 #elif defined(SH_STUB_MODE) 819 # ifdef _MSC_VER 820 pid_t pgrp _getpid(); 821 # else 822 pid_t pgrp = getpgrp(); 823 # endif 824 #else 825 #endif 826 827 TRACE2((psh, "sh_getpgrp() -> %d [%d]\n", pgrp, errno)); 828 (void)psh; 829 return pgrp; 760 830 } 761 831 … … 763 833 { 764 834 #ifdef SH_PURE_STUB_MODE 765 return pid; 766 #elif defined(SH_STUB_MODE) 767 (void)psh; 768 # ifdef _MSC_VER 769 return pid; 770 # else 771 return getpgid(pid); 772 # endif 773 #else 774 #endif 835 pid_t pgid = pid; 836 #elif defined(SH_STUB_MODE) 837 # ifdef _MSC_VER 838 pid_t pgid = pid; 839 # else 840 pid_t pgid = getpgid(pid); 841 # endif 842 #else 843 #endif 844 845 TRACE2((psh, "sh_getpgid(%d) -> %d [%d]\n", pid, pgid, errno)); 846 (void)psh; 847 return pgid; 775 848 } 776 849 … … 778 851 { 779 852 #ifdef SH_PURE_STUB_MODE 780 return -1; 781 #elif defined(SH_STUB_MODE) 782 (void)psh; 783 # ifdef _MSC_VER 784 return -1; 785 # else 853 int rc = -1; 854 #elif defined(SH_STUB_MODE) 855 # ifdef _MSC_VER 856 int rc = -1; 857 # else 858 int rc = setpgid(pid, pgid); 859 # endif 860 #else 861 #endif 862 863 TRACE2((psh, "sh_setpgid(%d, %d) -> %d [%d]\n", pid, pgid, rc, errno)); 864 (void)psh; 865 return rc; 866 } 867 868 pid_t sh_tcgetpgrp(shinstance *psh, int fd) 869 { 870 pid_t pgrp; 871 872 #ifdef SH_PURE_STUB_MODE 873 pgrp = -1; 874 #elif defined(SH_STUB_MODE) 875 # ifdef _MSC_VER 876 pgrp = -1; 877 # else 878 pgrp = tcgetpgrp(fd); 879 # endif 880 #else 881 #endif 882 883 TRACE2((psh, "sh_tcgetpgrp(%d) -> %d [%d]\n", fd, pgrp, errno)); 884 (void)psh; 885 return pgrp; 886 } 887 888 int sh_tcsetpgrp(shinstance *psh, int fd, pid_t pgrp) 889 { 786 890 int rc; 787 rc = setpgid(pid, pgid); 788 //fprintf(stderr, "setpgid(%d,%d) -> %d\n", pid, pgid, rc); 891 TRACE2((psh, "sh_tcsetpgrp(%d, %d)\n", fd, pgrp)); 892 893 #ifdef SH_PURE_STUB_MODE 894 rc = -1; 895 #elif defined(SH_STUB_MODE) 896 # ifdef _MSC_VER 897 rc = -1; 898 # else 899 rc = tcsetpgrp(fd, pgrp); 900 # endif 901 #else 902 #endif 903 904 TRACE2((psh, "sh_tcsetpgrp(%d, %d) -> %d [%d]\n", fd, pgrp, rc, errno)); 905 (void)psh; 789 906 return rc; 790 # endif791 #else792 #endif793 }794 795 pid_t sh_tcgetpgrp(shinstance *psh, int fd)796 {797 #ifdef SH_PURE_STUB_MODE798 return -1;799 #elif defined(SH_STUB_MODE)800 (void)psh;801 # ifdef _MSC_VER802 return -1;803 # else804 return tcgetpgrp(fd);805 # endif806 #else807 #endif808 }809 810 int sh_tcsetpgrp(shinstance *psh, int fd, pid_t pgrp)811 {812 #ifdef SH_PURE_STUB_MODE813 return -1;814 #elif defined(SH_STUB_MODE)815 (void)psh;816 # ifdef _MSC_VER817 return -1;818 # else819 return tcsetpgrp(fd, pgrp);820 # endif821 #else822 #endif823 907 } 824 908 … … 826 910 { 827 911 #ifdef SH_PURE_STUB_MODE 828 return -1; 829 #elif defined(SH_STUB_MODE) 830 (void)psh; 831 # ifdef _MSC_VER 832 return -1; 833 # else 834 return getrlimit(resid, limp); 835 # endif 836 #else 837 #endif 912 int rc = -1; 913 #elif defined(SH_STUB_MODE) 914 # ifdef _MSC_VER 915 int rc = -1; 916 # else 917 int rc = getrlimit(resid, limp); 918 # endif 919 #else 920 #endif 921 922 TRACE2((psh, "sh_getrlimit(%d, %p) -> %d [%d] {%ld,%ld}\n", 923 resid, limp, rc, errno, (long)limp->rlim_cur, (long)limp->rlim_max)); 924 (void)psh; 925 return rc; 838 926 } 839 927 … … 841 929 { 842 930 #ifdef SH_PURE_STUB_MODE 843 return -1; 844 #elif defined(SH_STUB_MODE) 845 (void)psh; 846 # ifdef _MSC_VER 847 return -1; 848 # else 849 return setrlimit(resid, limp); 850 # endif 851 #else 852 #endif 853 } 854 931 int rc = -1; 932 #elif defined(SH_STUB_MODE) 933 # ifdef _MSC_VER 934 int rc = -1; 935 # else 936 int rc = setrlimit(resid, limp); 937 # endif 938 #else 939 #endif 940 941 TRACE2((psh, "sh_setrlimit(%d, %p:{%ld,%ld}) -> %d [%d]\n", 942 resid, limp, (long)limp->rlim_cur, (long)limp->rlim_max, rc, errno)); 943 (void)psh; 944 return rc; 945 } 946 -
trunk/src/kash/shinstance.h
r1784 r1785 50 50 #include "exec.h" 51 51 #include "var.h" 52 #include "show.h" 52 53 53 54 #ifdef _MSC_VER … … 457 458 int sh_setrlimit(shinstance *, int, const shrlimit *); 458 459 459 #endif 460 461 #ifdef DEBUG 462 # define TRACE2(param) trace param 463 # define TRACE2V(param) tracev param 464 #else 465 # define TRACE2(param) 466 # define TRACE2V(param) 467 #endif 468 469 #endif -
trunk/src/kash/show.c
r1233 r1785 284 284 { 285 285 #ifdef DEBUG 286 int savederrno = errno; 286 287 va_list va; 287 288 288 if ( debug(psh) != 1)289 if ((psh || !tracefile) && debug(psh) != 1) 289 290 return; 290 291 fprintf(tracefile, "[%d] ", sh_getpid(psh)); … … 292 293 (void) vfprintf(tracefile, fmt, va); 293 294 va_end(va); 295 296 errno = savederrno; 294 297 #endif 295 298 } … … 299 302 { 300 303 #ifdef DEBUG 301 if (debug(psh) != 1) 304 int savederrno = errno; 305 306 if ((psh || !tracefile) && debug(psh) != 1) 302 307 return; 303 308 fprintf(tracefile, "[%d] ", sh_getpid(psh)); 304 309 (void) vfprintf(tracefile, fmt, va); 310 311 errno = savederrno; 305 312 #endif 306 313 } … … 311 318 trputs(shinstance *psh, const char *s) 312 319 { 313 if (debug(psh) != 1) 320 int savederrno = errno; 321 322 if ((psh || !tracefile) && debug(psh) != 1) 314 323 return; 315 324 fputs(s, tracefile); 325 326 errno = savederrno; 316 327 } 317 328 … … 320 331 trstring(shinstance *psh, char *s) 321 332 { 333 int savederrno = errno; 322 334 char *p; 323 335 char c; 324 336 325 if ( debug(psh) != 1)337 if ((psh || !tracefile) && debug(psh) != 1) 326 338 return; 327 339 putc('"', tracefile); … … 354 366 } 355 367 putc('"', tracefile); 368 369 errno = savederrno; 356 370 } 357 371 #endif … … 362 376 { 363 377 #ifdef DEBUG 364 if (debug(psh) != 1) 378 int savederrno = errno; 379 380 if ((psh || !tracefile) && debug(psh) != 1) 365 381 return; 366 382 while (*ap) { … … 371 387 putc('\n', tracefile); 372 388 } 389 390 errno = savederrno; 373 391 #endif 374 392 }
Note:
See TracChangeset
for help on using the changeset viewer.