From owner-p4-projects@FreeBSD.ORG Thu Jun 25 18:44:49 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 959E51065675; Thu, 25 Jun 2009 18:44:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 54D561065670 for ; Thu, 25 Jun 2009 18:44:49 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 413568FC1E for ; Thu, 25 Jun 2009 18:44:49 +0000 (UTC) (envelope-from mav@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5PIinSn068722 for ; Thu, 25 Jun 2009 18:44:49 GMT (envelope-from mav@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5PIimPl068720 for perforce@freebsd.org; Thu, 25 Jun 2009 18:44:48 GMT (envelope-from mav@freebsd.org) Date: Thu, 25 Jun 2009 18:44:48 GMT Message-Id: <200906251844.n5PIimPl068720@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mav@freebsd.org using -f From: Alexander Motin To: Perforce Change Reviews Cc: Subject: PERFORCE change 165191 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Jun 2009 18:44:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=165191 Change 165191 by mav@mav_mavbook on 2009/06/25 18:44:22 IFC Affected files ... .. //depot/projects/scottl-camlock/src/bin/sh/exec.c#4 integrate .. //depot/projects/scottl-camlock/src/bin/sh/expand.c#3 integrate .. //depot/projects/scottl-camlock/src/bin/sh/sh.1#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/Symbol.map#5 integrate .. //depot/projects/scottl-camlock/src/lib/libc/gen/semctl.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/include/compat.h#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/Makefile.inc#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/Symbol.map#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_add_flag_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_add_perm.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_branding.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_calc_mask.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_clear_flags_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_copy.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_create_entry.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_delete_entry.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_delete_entry.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_delete_flag_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_entry.c#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_flag.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_from_text.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_from_text_nfs4.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get_brand_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get_entry_type_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get_flag_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_get_flagset_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_init.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_is_trivial_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_set.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_set.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_set_entry_type_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_set_flagset_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_set_tag_type.3#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_strip.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_strip_np.3#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_support.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_support.h#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_support_nfs4.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_to_text.3#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_to_text.c#2 integrate .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_to_text_nfs4.c#1 branch .. //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_valid.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/rpc/getnetconfig.c#3 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/Makefile.inc#4 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/Symbol.map#5 integrate .. //depot/projects/scottl-camlock/src/lib/libc/sys/pathconf.2#3 integrate .. //depot/projects/scottl-camlock/src/release/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ipfw/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ipfw/dummynet.c#3 integrate .. //depot/projects/scottl-camlock/src/sbin/ipfw/ipfw.8#4 integrate .. //depot/projects/scottl-camlock/src/sbin/ipfw/ipfw2.h#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/Makefile#6 integrate .. //depot/projects/scottl-camlock/src/share/man/man4/bridge.4#1 branch .. //depot/projects/scottl-camlock/src/share/man/man4/epair.4#1 branch .. //depot/projects/scottl-camlock/src/share/man/man4/if_bridge.4#5 delete .. //depot/projects/scottl-camlock/src/share/man/man8/picobsd.8#2 integrate .. //depot/projects/scottl-camlock/src/share/man/man8/yp.8#2 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/intr_machdep.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/io_apic.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/amd64/msi.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/amd64/include/intr_machdep.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/pmap.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/arm/arm/vm_machdep.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/arm/conf/CAMBRIA.hints#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/discovery/discovery.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/kirkwood/kirkwood.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/mvwin.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/arm/mv/orion/orion.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_ipc.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_misc.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_proto.h#21 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscall.h#21 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_syscalls.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/freebsd32_sysent.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/compat/freebsd32/syscalls.master#23 integrate .. //depot/projects/scottl-camlock/src/sys/compat/linux/linux_ipc.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/compat/svr4/svr4_ipc.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/conf/files#36 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cas/if_cas.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cas/if_casvar.h#2 integrate .. //depot/projects/scottl-camlock/src/sys/dev/cxgb/cxgb_main.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/drm_irq.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/i915_drv.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/i915_irq.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/radeon_cp.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/dev/drm/radeon_irq.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/dev/e1000/if_igb.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/hptmv/atapi.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/dev/ixgbe/ixgbe.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mpt/mpt_cam.c#29 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/dev/mxge/if_mxge_var.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/dev/usb/wlan/if_zyd.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/fs/nfsclient/nfs_clvnops.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/geom/linux_lvm/g_linux_lvm.c#2 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/FreeBSD/xfs_ioctl.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/FreeBSD/xfs_iops.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/FreeBSD/xfs_vnode.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/xfs_rw.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/gnu/fs/xfs/xfs_vnodeops.c#6 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/intr_machdep.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/io_apic.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/i386/i386/msi.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/i386/ibcs2/ibcs2_ipc.c#5 integrate .. //depot/projects/scottl-camlock/src/sys/i386/include/intr_machdep.h#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/init_sysent.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_intr.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_jail.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/kern_switch.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/subr_pcpu.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/kern/syscalls.master#19 integrate .. //depot/projects/scottl-camlock/src/sys/kern/systrace_args.c#9 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sysv_ipc.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sysv_msg.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sysv_sem.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/kern/sysv_shm.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_epair.c#1 branch .. //depot/projects/scottl-camlock/src/sys/net/if_media.h#12 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_spppsubr.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/net/if_stf.c#16 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/aarp.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/at_control.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/at_var.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/ddp_input.c#10 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/ddp_output.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/ddp_pcb.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netatalk/ddp_usrreq.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/if_ether.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in.c#19 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_gif.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_mcast.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_pcb.c#24 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/in_var.h#13 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_carp.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_dummynet.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_icmp.c#15 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ip_input.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/ipfw/ip_dummynet.c#3 integrate .. //depot/projects/scottl-camlock/src/sys/netinet/raw_ip.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_ifattach.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_pcb.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_src.c#18 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/in6_var.h#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/ip6_input.c#17 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/nd6.c#20 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/nd6_rtr.c#14 integrate .. //depot/projects/scottl-camlock/src/sys/netinet6/vinet6.h#4 integrate .. //depot/projects/scottl-camlock/src/sys/netipsec/key.c#13 integrate .. //depot/projects/scottl-camlock/src/sys/netipx/ipx.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/netipx/ipx_if.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/netipx/ipx_input.c#12 integrate .. //depot/projects/scottl-camlock/src/sys/netipx/ipx_outputfl.c#7 integrate .. //depot/projects/scottl-camlock/src/sys/netipx/ipx_pcb.c#11 integrate .. //depot/projects/scottl-camlock/src/sys/nfsclient/nfs_vnops.c#21 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/conf/MPC85XX#7 integrate .. //depot/projects/scottl-camlock/src/sys/powerpc/powerpc/mp_machdep.c#8 integrate .. //depot/projects/scottl-camlock/src/sys/rpc/clnt_rc.c#4 integrate .. //depot/projects/scottl-camlock/src/sys/sparc64/conf/GENERIC#21 integrate .. //depot/projects/scottl-camlock/src/sys/sun4v/conf/GENERIC#10 integrate .. //depot/projects/scottl-camlock/src/sys/sys/acl.h#8 integrate .. //depot/projects/scottl-camlock/src/sys/sys/ata.h#10 integrate .. //depot/projects/scottl-camlock/src/sys/sys/ipc.h#5 integrate .. //depot/projects/scottl-camlock/src/sys/sys/msg.h#3 integrate .. //depot/projects/scottl-camlock/src/sys/sys/param.h#25 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sched.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sem.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/shm.h#6 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/sys/syscall.mk#18 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sysctl.h#17 integrate .. //depot/projects/scottl-camlock/src/sys/sys/sysproto.h#18 integrate .. //depot/projects/scottl-camlock/src/sys/sys/unistd.h#7 integrate .. //depot/projects/scottl-camlock/src/sys/sys/vnode.h#19 integrate .. //depot/projects/scottl-camlock/src/tools/regression/bin/sh/builtins/command5.0.stdout#2 integrate .. //depot/projects/scottl-camlock/src/tools/regression/bin/sh/builtins/eval2.0#1 branch .. //depot/projects/scottl-camlock/src/tools/regression/bin/sh/expansion/ifs1.0#1 branch .. //depot/projects/scottl-camlock/src/tools/tools/nanobsd/nanobsd.sh#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/gzip/gzip.1#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/gzip/gzip.c#4 integrate .. //depot/projects/scottl-camlock/src/usr.bin/gzip/zuncompress.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/ipcs/ipcs.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.bin/ypcat/ypcat.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/ypmatch/ypmatch.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.bin/ypwhich/ypwhich.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/cxgbtool/cxgbtool.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/fdcontrol/fdcontrol.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/fdformat/fdformat.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/fdread/fdread.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/fdwrite/fdwrite.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/Makefile#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/devices.c#5 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/dispatch.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/label.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/media.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/menus.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/options.c#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/sysinstall.h#3 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/sysinstall/usb.c#1 branch .. //depot/projects/scottl-camlock/src/usr.sbin/ypserv/Makefile.yp#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ypserv/yp_access.c#2 integrate .. //depot/projects/scottl-camlock/src/usr.sbin/ypserv/ypserv.8#3 integrate Differences ... ==== //depot/projects/scottl-camlock/src/bin/sh/exec.c#4 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.33 2009/06/01 11:11:46 rse Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/exec.c,v 1.34 2009/06/24 22:04:04 jilles Exp $"); #include #include @@ -756,6 +756,7 @@ if ((cmdp = cmdlookup(argv[i], 0)) != NULL) { entry.cmdtype = cmdp->cmdtype; entry.u = cmdp->param; + entry.special = cmdp->special; } else { /* Finally use brute force */ @@ -804,6 +805,9 @@ case CMDBUILTIN: if (cmd == TYPECMD_SMALLV) out1fmt("%s\n", argv[i]); + else if (entry.special) + out1fmt("%s is a special shell builtin\n", + argv[i]); else out1fmt("%s is a shell builtin\n", argv[i]); break; ==== //depot/projects/scottl-camlock/src/bin/sh/expand.c#3 (text+ko) ==== @@ -36,7 +36,7 @@ #endif #endif /* not lint */ #include -__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.53 2008/05/15 19:55:27 stefanf Exp $"); +__FBSDID("$FreeBSD: src/bin/sh/expand.c,v 1.55 2009/06/25 17:14:06 jilles Exp $"); #include #include @@ -82,7 +82,7 @@ struct ifsregion *next; /* next region in list */ int begoff; /* offset of start of region */ int endoff; /* offset of end of region */ - int nulonly; /* search for nul bytes only */ + int inquotes; /* search for nul bytes only */ }; @@ -936,13 +936,19 @@ */ STATIC void -recordregion(int start, int end, int nulonly) +recordregion(int start, int end, int inquotes) { struct ifsregion *ifsp; if (ifslastp == NULL) { ifsp = &ifsfirst; } else { + if (ifslastp->endoff == start + && ifslastp->inquotes == inquotes) { + /* extend previous area */ + ifslastp->endoff = end; + return; + } ifsp = (struct ifsregion *)ckmalloc(sizeof (struct ifsregion)); ifslastp->next = ifsp; } @@ -950,7 +956,7 @@ ifslastp->next = NULL; ifslastp->begoff = start; ifslastp->endoff = end; - ifslastp->nulonly = nulonly; + ifslastp->inquotes = inquotes; } @@ -969,75 +975,89 @@ char *p; char *q; char *ifs; - int ifsspc; - int nulonly; + const char *ifsspc; + int had_param_ch = 0; + + start = string; + + if (ifslastp == NULL) { + /* Return entire argument, IFS doesn't apply to any of it */ + sp = (struct strlist *)stalloc(sizeof *sp); + sp->text = start; + *arglist->lastp = sp; + arglist->lastp = &sp->next; + return; + } + ifs = ifsset() ? ifsval() : " \t\n"; - start = string; - ifsspc = 0; - nulonly = 0; - if (ifslastp != NULL) { - ifsp = &ifsfirst; - do { - p = string + ifsp->begoff; - nulonly = ifsp->nulonly; - ifs = nulonly ? nullstr : - ( ifsset() ? ifsval() : " \t\n" ); - ifsspc = 0; - while (p < string + ifsp->endoff) { - q = p; - if (*p == CTLESC) + for (ifsp = &ifsfirst; ifsp != NULL; ifsp = ifsp->next) { + p = string + ifsp->begoff; + while (p < string + ifsp->endoff) { + q = p; + if (*p == CTLESC) + p++; + if (ifsp->inquotes) { + /* Only NULs (should be from "$@") end args */ + had_param_ch = 1; + if (*p != 0) { + p++; + continue; + } + ifsspc = NULL; + } else { + if (!strchr(ifs, *p)) { + had_param_ch = 1; p++; - if (strchr(ifs, *p)) { - if (!nulonly) - ifsspc = (strchr(" \t\n", *p) != NULL); - /* Ignore IFS whitespace at start */ - if (q == start && ifsspc) { - p++; - start = p; - continue; - } - *q = '\0'; - sp = (struct strlist *)stalloc(sizeof *sp); - sp->text = start; - *arglist->lastp = sp; - arglist->lastp = &sp->next; + continue; + } + ifsspc = strchr(" \t\n", *p); + + /* Ignore IFS whitespace at start */ + if (q == start && ifsspc != NULL) { p++; - if (!nulonly) { - for (;;) { - if (p >= string + ifsp->endoff) { - break; - } - q = p; - if (*p == CTLESC) - p++; - if (strchr(ifs, *p) == NULL ) { - p = q; - break; - } else if (strchr(" \t\n",*p) == NULL) { - if (ifsspc) { - p++; - ifsspc = 0; - } else { - p = q; - break; - } - } else - p++; - } - } start = p; - } else - p++; + continue; + } + had_param_ch = 0; } - } while ((ifsp = ifsp->next) != NULL); - if (*start || (!ifsspc && start > string)) { + + /* Save this argument... */ + *q = '\0'; sp = (struct strlist *)stalloc(sizeof *sp); sp->text = start; *arglist->lastp = sp; arglist->lastp = &sp->next; + p++; + + if (ifsspc != NULL) { + /* Ignore further trailing IFS whitespace */ + for (; p < string + ifsp->endoff; p++) { + q = p; + if (*p == CTLESC) + p++; + if (strchr(ifs, *p) == NULL) { + p = q; + break; + } + if (strchr(" \t\n", *p) == NULL) { + p++; + break; + } + } + } + start = p; } - } else { + } + + /* + * Save anything left as an argument. + * Traditionally we have treated 'IFS=':'; set -- x$IFS' as + * generating 2 arguments, the second of which is empty. + * Some recent clarification of the Posix spec say that it + * should only generate one.... + */ + if (had_param_ch || *start != 0) { sp = (struct strlist *)stalloc(sizeof *sp); sp->text = start; *arglist->lastp = sp; ==== //depot/projects/scottl-camlock/src/bin/sh/sh.1#4 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" from: @(#)sh.1 8.6 (Berkeley) 5/4/95 -.\" $FreeBSD: src/bin/sh/sh.1,v 1.129 2009/06/07 15:04:43 jilles Exp $ +.\" $FreeBSD: src/bin/sh/sh.1,v 1.130 2009/06/24 22:04:04 jilles Exp $ .\" .Dd May 31, 2009 .Dt SH 1 @@ -606,6 +606,12 @@ .Pp Shell built-in commands are executed internally to the shell, without spawning a new process. +There are two kinds of built-in commands: regular and special. +Assignments before special builtins persist after they finish +executing and assignment errors, redirection errors and certain +operand errors cause a script to be aborted. +Both regular and special builtins can affect the shell in ways +normal programs cannot. .Pp Otherwise, if the command name does not match a function or built-in command, the command is searched for as a normal @@ -885,7 +891,7 @@ The .Ic continue command continues with the next iteration of the innermost loop. -These are implemented as built-in commands. +These are implemented as special built-in commands. .Pp The syntax of the .Ic case @@ -1001,7 +1007,7 @@ nested function, sourced script, or shell instance, in that order. The .Ic return -command is implemented as a built-in command. +command is implemented as a special built-in command. .Ss Variables and Parameters The shell maintains a set of parameters. A parameter @@ -1590,6 +1596,7 @@ is either the path name to .Ar utility , +a special shell builtin, a shell builtin, a shell function, a shell keyword @@ -2114,7 +2121,8 @@ .Ar name as a command and print the resolution of the command search. Possible resolutions are: -shell keyword, alias, shell built-in command, command, tracked alias +shell keyword, alias, special shell builtin, shell builtin, command, +tracked alias and not found. For aliases the alias expansion is printed; for commands and tracked aliases ==== //depot/projects/scottl-camlock/src/lib/libc/gen/Symbol.map#5 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.20 2009/05/07 13:49:48 ed Exp $ + * $FreeBSD: src/lib/libc/gen/Symbol.map,v 1.21 2009/06/24 21:10:52 jhb Exp $ */ FBSD_1.0 { @@ -247,7 +247,6 @@ sem_timedwait; sem_post; sem_getvalue; - semctl; setdomainname; sethostname; longjmperror; @@ -362,6 +361,7 @@ posix_spawnattr_setsigdefault; posix_spawnattr_setsigmask; posix_spawnp; + semctl; tcgetsid; tcsetsid; }; ==== //depot/projects/scottl-camlock/src/lib/libc/gen/semctl.c#2 (text+ko) ==== @@ -27,7 +27,9 @@ #include -__FBSDID("$FreeBSD: src/lib/libc/gen/semctl.c,v 1.9 2003/02/16 17:29:09 nectar Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/gen/semctl.c,v 1.10 2009/06/24 21:10:52 jhb Exp $"); + +#define _WANT_SEMUN_OLD #include #include @@ -35,9 +37,11 @@ #include #include -extern int __semctl(int semid, int semnum, int cmd, union semun *arg); +int __semctl(int semid, int semnum, int cmd, union semun *arg); +int freebsd7___semctl(int semid, int semnum, int cmd, union semun_old *arg); -int semctl(int semid, int semnum, int cmd, ...) +int +semctl(int semid, int semnum, int cmd, ...) { va_list ap; union semun semun; @@ -55,3 +59,25 @@ return (__semctl(semid, semnum, cmd, semun_ptr)); } + +int +freebsd7_semctl(int semid, int semnum, int cmd, ...) +{ + va_list ap; + union semun_old semun; + union semun_old *semun_ptr; + + va_start(ap, cmd); + if (cmd == IPC_SET || cmd == IPC_STAT || cmd == GETALL + || cmd == SETVAL || cmd == SETALL) { + semun = va_arg(ap, union semun_old); + semun_ptr = &semun; + } else { + semun_ptr = NULL; + } + va_end(ap); + + return (freebsd7___semctl(semid, semnum, cmd, semun_ptr)); +} + +__sym_compat(semctl, freebsd7_semctl, FBSD_1.0); ==== //depot/projects/scottl-camlock/src/lib/libc/posix1e/Makefile.inc#3 (text+ko) ==== @@ -1,55 +1,77 @@ -# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.20 2009/05/22 15:56:43 trasz Exp $ +# $FreeBSD: src/lib/libc/posix1e/Makefile.inc,v 1.21 2009/06/25 12:46:59 trasz Exp $ .PATH: ${.CURDIR}/posix1e CFLAGS+=-D_ACL_PRIVATE -SRCS+= acl_calc_mask.c \ +# Copy kern/subr_acl_nfs4.c to the libc object directory. +subr_acl_nfs4.c: ${.CURDIR}/../../sys/kern/subr_acl_nfs4.c + cat ${.ALLSRC} > ${.TARGET} + +SRCS+= acl_branding.c \ + acl_calc_mask.c \ acl_copy.c \ acl_compat.c \ acl_delete.c \ acl_delete_entry.c \ acl_entry.c \ + acl_flag.c \ acl_free.c \ acl_from_text.c \ + acl_from_text_nfs4.c \ acl_get.c \ acl_init.c \ acl_perm.c \ acl_set.c \ + acl_strip.c \ acl_support.c \ + acl_support_nfs4.c \ acl_to_text.c \ + acl_to_text_nfs4.c \ acl_valid.c \ extattr.c \ mac.c \ mac_exec.c \ mac_get.c \ - mac_set.c + mac_set.c \ + subr_acl_nfs4.c SYM_MAPS+=${.CURDIR}/posix1e/Symbol.map MAN+= acl.3 \ + acl_add_flag_np.3 \ acl_add_perm.3 \ acl_calc_mask.3 \ + acl_clear_flags_np.3 \ acl_clear_perms.3 \ acl_copy_entry.3 \ acl_create_entry.3 \ acl_delete.3 \ acl_delete_entry.3 \ + acl_delete_flag_np.3 \ acl_delete_perm.3 \ acl_dup.3 \ acl_free.3 \ acl_from_text.3 \ acl_get.3 \ + acl_get_brand_np.3 \ acl_get_entry.3 \ + acl_get_entry_type_np.3 \ + acl_get_flagset_np.3 \ + acl_get_flag_np.3 \ acl_get_permset.3 \ acl_get_perm_np.3 \ acl_get_qualifier.3 \ acl_get_tag_type.3 \ acl_init.3 \ + acl_is_trivial_np.3 \ acl_set.3 \ + acl_set_entry_type_np.3 \ + acl_set_flagset_np.3 \ acl_set_permset.3 \ acl_set_qualifier.3 \ acl_set_tag_type.3 \ + acl_strip_np.3 \ acl_to_text.3 \ acl_valid.3 \ extattr.3 \ @@ -63,15 +85,18 @@ mac_text.3 \ posix1e.3 -MLINKS+=acl_delete.3 acl_delete_def_file.3 \ +MLINKS+=acl_create_entry.3 acl_create_entry_np.3\ + acl_delete.3 acl_delete_def_file.3 \ acl_delete.3 acl_delete_file_np.3 \ acl_delete.3 acl_delete_fd_np.3 \ + acl_delete_entry.3 acl_delete_entry_np.3\ acl_get.3 acl_get_file.3 \ acl_get.3 acl_get_fd.3 \ acl_get.3 acl_get_fd_np.3 \ acl_set.3 acl_set_file.3 \ acl_set.3 acl_set_fd.3 \ acl_set.3 acl_set_fd_np.3 \ + acl_to_text.3 acl_to_text_np.3 \ acl_valid.3 acl_valid_file_np.3 \ acl_valid.3 acl_valid_fd_np.3 \ extattr.3 extattr_namespace_to_string.3 \ ==== //depot/projects/scottl-camlock/src/lib/libc/posix1e/Symbol.map#3 (text) ==== @@ -1,5 +1,5 @@ /* - * $FreeBSD: src/lib/libc/posix1e/Symbol.map,v 1.4 2009/05/22 15:56:43 trasz Exp $ + * $FreeBSD: src/lib/libc/posix1e/Symbol.map,v 1.5 2009/06/25 12:46:59 trasz Exp $ */ FBSD_1.0 { @@ -66,7 +66,21 @@ }; FBSD_1.1 { + acl_add_flag_np; acl_add_perm; + acl_clear_flags_np; + acl_create_entry_np; + acl_delete_entry_np; + acl_delete_flag_np; acl_delete_perm; + acl_get_brand_np; + acl_get_entry_type_np; + acl_get_flag_np; + acl_get_flagset_np; acl_get_perm_np; + acl_is_trivial_np; + acl_set_entry_type_np; + acl_set_flagset_np; + acl_strip_np; + acl_to_text_np; }; ==== //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl.3#3 (text+ko) ==== @@ -25,9 +25,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/posix1e/acl.3,v 1.23 2009/05/23 13:51:05 trasz Exp $ +.\" $FreeBSD: src/lib/libc/posix1e/acl.3,v 1.26 2009/06/25 16:34:29 trasz Exp $ .\" -.Dd December 18, 2002 +.Dd June 25, 2009 .Dt ACL 3 .Os .Sh NAME @@ -59,6 +59,10 @@ .Pp Available functions, sorted by behavior, include: .Bl -tag -width indent +.It Fn acl_add_flag_np +This function is described in +.Xr acl_add_flag_np 3 , +and may be used to add flags to a flagset. .It Fn acl_add_perm This function is described in .Xr acl_add_perm 3 , @@ -70,6 +74,10 @@ the .Dv ACL_MASK entry. +.It Fn acl_clear_flags_np +This function is described in +.Xr acl_clear_flags_np 3 , +and may be used to clear all flags from a flagset. .It Fn acl_clear_perms This function is described in .Xr acl_clear_perms 3 , @@ -78,8 +86,11 @@ This function is described in .Xr acl_copy_entry 3 , and may be used to copy the contents of an ACL entry. -.It Fn acl_create_entry -This function is described in +.It Xo +.Fn acl_create_entry , +.Fn acl_create_entry_np +.Xc +These functions are described in .Xr acl_create_entry 3 , and may be used to create an empty entry in an ACL. .It Xo @@ -92,10 +103,17 @@ These functions are described in .Xr acl_delete 3 , and may be used to delete ACLs from file system objects. -.It Fn acl_delete_entry -This function is described in +.It Xo +.Fn acl_delete_entry , +.Fn acl_delete_entry_np , +.Xc +This functions are described in .Xr acl_delete_entry 3 , and may be used to delete an entry from an ACL. +.It Fn acl_delete_flag_np +This function is described in +.Xr acl_delete_flag_np 3 , +and may be used to delete flags from a flagset. .It Fn acl_delete_perm This function is described in .Xr acl_delete_perm 3 , @@ -112,7 +130,7 @@ This function is described in .Xr acl_from_text 3 , and may be used to convert a text-form ACL into working ACL state, if -the ACL has POSIX.1e semantics. +the ACL has POSIX.1e or NFSv4 semantics. .It Fn acl_get_entry This function is described in .Xr acl_get_entry 3 , @@ -126,6 +144,14 @@ These functions are described in .Xr acl_get 3 , and may be used to retrieve ACLs from file system objects. +.It Fn acl_get_entry_type_np +This function is described in +.Xr acl_get_entry_type_np 3 , +and may be used to retrieve an ACL type from an ACL entry. +.It Fn acl_get_flagset_np +This function is described in +.Xr acl_get_flagset_np 3 , +and may be used to retrieve a flagset from an ACL entry. .It Fn acl_get_permset This function is described in .Xr acl_get_permset 3 , @@ -142,6 +168,10 @@ This function is described in .Xr acl_init 3 , and may be used to allocate a fresh (empty) ACL structure. +.It Fn acl_is_trivial_np +This function is described in +.Xr acl_is_trivial_np 3 , +and may be used to find out whether ACL is trivial. .It Xo .Fn acl_set_fd , .Fn acl_set_fd_np , @@ -151,6 +181,14 @@ These functions are described in .Xr acl_set 3 , and may be used to assign an ACL to a file system object. +.It Fn acl_set_entry_type_np +This function is described in +.Xr acl_set_entry_type_np 3 , +and may be used to set the ACL type of an ACL entry. +.It Fn acl_set_flagset_np +This function is described in +.Xr acl_set_flagset_np 3 , +and may be used to set the flags of an ACL entry from a flagset. .It Fn acl_set_permset This function is described in .Xr acl_set_permset 3 , @@ -163,10 +201,17 @@ This function is described in .Xr acl_set_tag_type 3 , and may be used to set the tag type of an ACL. -.It Fn acl_to_text -This function is described in +.It Fn acl_strip_np +This function is describe din +.Xr acl-strip_np 3 , +and may be used to remove extended entries from an ACL. +.It Xo +.Fn acl_to_text , +.Fn acl_to_text_np +.Xc +These functions are described in .Xr acl_to_text 3 , -and may be used to generate a text-form of a POSIX.1e semantics ACL. +and may be used to generate a text-form of a POSIX.1e or NFSv4 semantics ACL. .It Xo .Fn acl_valid , .Fn acl_valid_fd_np , @@ -189,25 +234,34 @@ .Sh SEE ALSO .Xr getfacl 1 , .Xr setfacl 1 , +.Xr acl_add_flag_np 3 , .Xr acl_add_perm 3 , .Xr acl_calc_mask 3 , +.Xr acl_clear_flags_np 3 , .Xr acl_clear_perms 3 , .Xr acl_copy_entry 3 , .Xr acl_create_entry 3 , .Xr acl_delete_entry 3 , +.Xr acl_delete_flag_np 3 , .Xr acl_delete_perm 3 , .Xr acl_dup 3 , .Xr acl_free 3 , .Xr acl_from_text 3 , .Xr acl_get 3 , +.Xr acl_get_entry_type_np 3 , +.Xr acl_get_flagset_np 3 , .Xr acl_get_permset 3 , .Xr acl_get_qualifier 3 , .Xr acl_get_tag_type 3 , .Xr acl_init 3 , +.Xr acl_is_trivial_np 3 , .Xr acl_set 3 , +.Xr acl_set_entry_type_np 3 , +.Xr acl_set_flagset_np 3 , .Xr acl_set_permset 3 , .Xr acl_set_qualifier 3 , .Xr acl_set_tag_type 3 , +.Xr acl_strip_np 3 , .Xr acl_to_text 3 , .Xr acl_valid 3 , .Xr posix1e 3 , ==== //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_add_perm.3#3 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/posix1e/acl_add_perm.3,v 1.8 2009/05/23 13:51:05 trasz Exp $ +.\" $FreeBSD: src/lib/libc/posix1e/acl_add_perm.3,v 1.10 2009/06/25 12:53:50 trasz Exp $ .\" -.Dd March 10, 2001 +.Dd June 25, 2009 .Dt ACL_ADD_PERM 3 .Os .Sh NAME @@ -52,11 +52,43 @@ .Pp For POSIX.1e ACLs, valid values are: .Pp -.Bl -column -offset 3n "ACL_EXECUTE" +.Bl -column -offset 3n "ACL_WRITE_NAMED_ATTRS" .It ACL_EXECUTE Execute permission .It ACL_WRITE Write permission .It ACL_READ Read permission .El +.Pp +For NFSv4 ACLs, valid values are: +.Pp +.Bl -column -offset 3n "ACL_WRITE_NAMED_ATTRS" +.It ACL_READ_DATA Read permission +.It ACL_LIST_DIRECTORY Same as ACL_READ_DATA +.It ACL_WRITE_DATA Write permission, or permission to create files +.It ACL_ADD_FILE Same as ACL_READ_DATA +.It ACL_APPEND_DATA Permission to create directories. Ignored for files +.It ACL_ADD_SUBDIRECTORY Same as ACL_APPEND_DATA +.It ACL_READ_NAMED_ATTRS Ignored +.It ACL_WRITE_NAMED_ATTRS Ignored +.It ACL_EXECUTE Execute permission +.It ACL_DELETE_CHILD Permission to delete files and subdirectories +.It ACL_READ_ATTRIBUTES Permission to read basic attributes +.It ACL_WRITE_ATTRIBUTES Permission to change basic attributes +.It ACL_DELETE Permission to delete the object this ACL is placed on +.It ACL_READ_ACL Permission to read ACL +.It ACL_WRITE_ACL Permission to change the ACL and file mode +.It ACL_SYNCHRONIZE Ignored +.El +.Pp +Calling +.Fn acl_add_perm +with +.Fa perm +equal to ACL_WRITE or ACL_READ brands the ACL as POSIX. +Calling it with ACL_READ_DATA, ACL_LIST_DIRECTORY, ACL_WRITE_DATA, +ACL_ADD_FILE, ACL_APPEND_DATA, ACL_ADD_SUBDIRECTORY, ACL_READ_NAMED_ATTRS, +ACL_WRITE_NAMED_ATTRS, ACL_DELETE_CHILD, ACL_READ_ATTRIBUTES, +ACL_WRITE_ATTRIBUTES, ACL_DELETE, ACL_READ_ACL, ACL_WRITE_ACL +or ACL_SYNCHRONIZE brands the ACL as NFSv4. .Sh RETURN VALUES .Rv -std acl_add_perm .Sh ERRORS @@ -73,11 +105,13 @@ does not contain a valid .Vt acl_perm_t value. +ACL is already branded differently. .El .Sh SEE ALSO .Xr acl 3 , .Xr acl_clear_perms 3 , .Xr acl_delete_perm 3 , +.Xr acl_get_brand_np 3 , .Xr acl_get_permset 3 , .Xr acl_set_permset 3 , .Xr posix1e 3 ==== //depot/projects/scottl-camlock/src/lib/libc/posix1e/acl_calc_mask.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include -__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_calc_mask.c,v 1.9 2008/11/04 00:20:43 imp Exp $"); +__FBSDID("$FreeBSD: src/lib/libc/posix1e/acl_calc_mask.c,v 1.10 2009/06/25 12:46:59 trasz Exp $"); #include #include "namespace.h" @@ -35,6 +35,8 @@ #include #include +#include "acl_support.h" + /* * acl_calc_mask() (23.4.2): calculate and set the permissions * associated with the ACL_MASK ACL entry. If the ACL already @@ -48,6 +50,12 @@ acl_t acl_new; int i, mask_mode, mask_num; + if (!_acl_brand_may_be(*acl_p, ACL_BRAND_POSIX)) { + errno = EINVAL; + return (-1); + } >>> TRUNCATED FOR MAIL (1000 lines) <<<