exec.c (194922) | exec.c (196483) |
---|---|
1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 22 unchanged lines hidden (view full) --- 31 */ 32 33#ifndef lint 34#if 0 35static char sccsid[] = "@(#)exec.c 8.4 (Berkeley) 6/8/95"; 36#endif 37#endif /* not lint */ 38#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 22 unchanged lines hidden (view full) --- 31 */ 32 33#ifndef lint 34#if 0 35static char sccsid[] = "@(#)exec.c 8.4 (Berkeley) 6/8/95"; 36#endif 37#endif /* not lint */ 38#include <sys/cdefs.h> |
39__FBSDID("$FreeBSD: head/bin/sh/exec.c 194922 2009-06-24 22:04:04Z jilles $"); | 39__FBSDID("$FreeBSD: head/bin/sh/exec.c 196483 2009-08-23 21:09:46Z jilles $"); |
40 41#include <sys/types.h> 42#include <sys/stat.h> 43#include <unistd.h> 44#include <fcntl.h> 45#include <errno.h> 46#include <stdlib.h> 47 --- 233 unchanged lines hidden (view full) --- 281 } while (--index >= 0); 282 out1str(name); 283 } else if (cmdp->cmdtype == CMDBUILTIN) { 284 out1fmt("builtin %s", cmdp->cmdname); 285 } else if (cmdp->cmdtype == CMDFUNCTION) { 286 out1fmt("function %s", cmdp->cmdname); 287 if (verbose) { 288 INTOFF; | 40 41#include <sys/types.h> 42#include <sys/stat.h> 43#include <unistd.h> 44#include <fcntl.h> 45#include <errno.h> 46#include <stdlib.h> 47 --- 233 unchanged lines hidden (view full) --- 281 } while (--index >= 0); 282 out1str(name); 283 } else if (cmdp->cmdtype == CMDBUILTIN) { 284 out1fmt("builtin %s", cmdp->cmdname); 285 } else if (cmdp->cmdtype == CMDFUNCTION) { 286 out1fmt("function %s", cmdp->cmdname); 287 if (verbose) { 288 INTOFF; |
289 name = commandtext(cmdp->param.func); | 289 name = commandtext(&cmdp->param.func->n); |
290 out1c(' '); 291 out1str(name); 292 ckfree(name); 293 INTON; 294 } 295#ifdef DEBUG 296 } else { 297 error("internal error: cmdtype %d", cmdp->cmdtype); --- 280 unchanged lines hidden (view full) --- 578 struct tblentry *cmdp; 579 580 INTOFF; 581 for (tblp = cmdtable ; tblp < &cmdtable[CMDTABLESIZE] ; tblp++) { 582 pp = tblp; 583 while ((cmdp = *pp) != NULL) { 584 if (cmdp->cmdtype == CMDFUNCTION) { 585 *pp = cmdp->next; | 290 out1c(' '); 291 out1str(name); 292 ckfree(name); 293 INTON; 294 } 295#ifdef DEBUG 296 } else { 297 error("internal error: cmdtype %d", cmdp->cmdtype); --- 280 unchanged lines hidden (view full) --- 578 struct tblentry *cmdp; 579 580 INTOFF; 581 for (tblp = cmdtable ; tblp < &cmdtable[CMDTABLESIZE] ; tblp++) { 582 pp = tblp; 583 while ((cmdp = *pp) != NULL) { 584 if (cmdp->cmdtype == CMDFUNCTION) { 585 *pp = cmdp->next; |
586 freefunc(cmdp->param.func); | 586 unreffunc(cmdp->param.func); |
587 ckfree(cmdp); 588 } else { 589 pp = &cmdp->next; 590 } 591 } 592 } 593 INTON; 594} --- 70 unchanged lines hidden (view full) --- 665void 666addcmdentry(char *name, struct cmdentry *entry) 667{ 668 struct tblentry *cmdp; 669 670 INTOFF; 671 cmdp = cmdlookup(name, 1); 672 if (cmdp->cmdtype == CMDFUNCTION) { | 587 ckfree(cmdp); 588 } else { 589 pp = &cmdp->next; 590 } 591 } 592 } 593 INTON; 594} --- 70 unchanged lines hidden (view full) --- 665void 666addcmdentry(char *name, struct cmdentry *entry) 667{ 668 struct tblentry *cmdp; 669 670 INTOFF; 671 cmdp = cmdlookup(name, 1); 672 if (cmdp->cmdtype == CMDFUNCTION) { |
673 freefunc(cmdp->param.func); | 673 unreffunc(cmdp->param.func); |
674 } 675 cmdp->cmdtype = entry->cmdtype; 676 cmdp->param = entry->u; 677 INTON; 678} 679 680 681/* --- 18 unchanged lines hidden (view full) --- 700 */ 701 702int 703unsetfunc(char *name) 704{ 705 struct tblentry *cmdp; 706 707 if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->cmdtype == CMDFUNCTION) { | 674 } 675 cmdp->cmdtype = entry->cmdtype; 676 cmdp->param = entry->u; 677 INTON; 678} 679 680 681/* --- 18 unchanged lines hidden (view full) --- 700 */ 701 702int 703unsetfunc(char *name) 704{ 705 struct tblentry *cmdp; 706 707 if ((cmdp = cmdlookup(name, 0)) != NULL && cmdp->cmdtype == CMDFUNCTION) { |
708 freefunc(cmdp->param.func); | 708 unreffunc(cmdp->param.func); |
709 delete_cmd_entry(); 710 return (0); 711 } 712 return (0); 713} 714 715/* 716 * Shared code for the following builtin commands: --- 117 unchanged lines hidden --- | 709 delete_cmd_entry(); 710 return (0); 711 } 712 return (0); 713} 714 715/* 716 * Shared code for the following builtin commands: --- 117 unchanged lines hidden --- |