Date: Tue, 18 Dec 2012 16:37:25 +0000 (UTC) From: Brooks Davis <brooks@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r244401 - in head: contrib/libc-vis include lib/libc/gen Message-ID: <201212181637.qBIGbP7e084145@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: brooks Date: Tue Dec 18 16:37:24 2012 New Revision: 244401 URL: http://svnweb.freebsd.org/changeset/base/244401 Log: Replace our implementation of the vis(3) and unvis(3) APIs with NetBSD's. This output size limited versions of vis and unvis functions as well as a set of vis variants that allow arbitrary characters to be specified for encoding. Finally, MIME Quoted-Printable encoding as described in RFC 2045 is supported. Added: head/contrib/libc-vis/ - copied from r244235, vendor/NetBSD/libc-vis/dist/ head/lib/libc/gen/unvis-compat.c (contents, props changed) Deleted: head/include/vis.h head/lib/libc/gen/unvis.3 head/lib/libc/gen/unvis.c head/lib/libc/gen/vis.3 head/lib/libc/gen/vis.c Modified: head/contrib/libc-vis/unvis.3 head/contrib/libc-vis/unvis.c head/contrib/libc-vis/vis.3 head/contrib/libc-vis/vis.c head/contrib/libc-vis/vis.h head/include/Makefile head/lib/libc/gen/Makefile.inc head/lib/libc/gen/Symbol.map Modified: head/contrib/libc-vis/unvis.3 ============================================================================== --- vendor/NetBSD/libc-vis/dist/unvis.3 Fri Dec 14 23:13:06 2012 (r244235) +++ head/contrib/libc-vis/unvis.3 Tue Dec 18 16:37:24 2012 (r244401) @@ -1,4 +1,5 @@ .\" $NetBSD: unvis.3,v 1.23 2011/03/17 14:06:29 wiz Exp $ +.\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -241,4 +242,6 @@ The and .Fn strnunvisx functions appeared in -.Nx 6.0 . +.Nx 6.0 +and +.Fx 10.0 . Modified: head/contrib/libc-vis/unvis.c ============================================================================== --- vendor/NetBSD/libc-vis/dist/unvis.c Fri Dec 14 23:13:06 2012 (r244235) +++ head/contrib/libc-vis/unvis.c Tue Dec 18 16:37:24 2012 (r244401) @@ -37,6 +37,7 @@ static char sccsid[] = "@(#)unvis.c 8.1 __RCSID("$NetBSD: unvis.c,v 1.40 2012/12/14 21:31:01 christos Exp $"); #endif #endif /* LIBC_SCCS and not lint */ +__FBSDID("$FreeBSD$"); #include "namespace.h" #include <sys/types.h> @@ -48,6 +49,14 @@ __RCSID("$NetBSD: unvis.c,v 1.40 2012/12 #include <errno.h> #include <vis.h> +#define _DIAGASSERT(x) assert(x) + +/* + * Return the number of elements in a statically-allocated array, + * __x. + */ +#define __arraycount(__x) (sizeof(__x) / sizeof(__x[0])) + #ifdef __weak_alias __weak_alias(strnunvisx,_strnunvisx) #endif Modified: head/contrib/libc-vis/vis.3 ============================================================================== --- vendor/NetBSD/libc-vis/dist/vis.3 Fri Dec 14 23:13:06 2012 (r244235) +++ head/contrib/libc-vis/vis.3 Tue Dec 18 16:37:24 2012 (r244401) @@ -1,4 +1,5 @@ .\" $NetBSD: vis.3,v 1.29 2012/12/14 22:55:59 christos Exp $ +.\" $FreeBSD$ .\" .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. @@ -438,7 +439,9 @@ The and .Fn strsvisx functions appeared in -.Nx 1.5 . +.Nx 1.5 +and +.Fx 10.0 . The buffer size limited versions of the functions .Po Fn nvis , .Fn strnvis , @@ -448,4 +451,6 @@ The buffer size limited versions of the and .Fn strsnvisx Pc appeared in -.Nx 6.0 . +.Nx 6.0 +and +.Fx 10.0 . Modified: head/contrib/libc-vis/vis.c ============================================================================== --- vendor/NetBSD/libc-vis/dist/vis.c Fri Dec 14 23:13:06 2012 (r244235) +++ head/contrib/libc-vis/vis.c Tue Dec 18 16:37:24 2012 (r244401) @@ -59,6 +59,7 @@ #if defined(LIBC_SCCS) && !defined(lint) __RCSID("$NetBSD: vis.c,v 1.45 2012/12/14 21:38:18 christos Exp $"); #endif /* LIBC_SCCS and not lint */ +__FBSDID("$FreeBSD$"); #include "namespace.h" #include <sys/types.h> @@ -68,6 +69,8 @@ __RCSID("$NetBSD: vis.c,v 1.45 2012/12/1 #include <errno.h> #include <stdlib.h> +#define _DIAGASSERT(x) assert(x) + #ifdef __weak_alias __weak_alias(strvisx,_strvisx) #endif Modified: head/contrib/libc-vis/vis.h ============================================================================== --- vendor/NetBSD/libc-vis/dist/vis.h Fri Dec 14 23:13:06 2012 (r244235) +++ head/contrib/libc-vis/vis.h Tue Dec 18 16:37:24 2012 (r244401) @@ -1,4 +1,5 @@ /* $NetBSD: vis.h,v 1.20 2012/12/14 21:36:59 christos Exp $ */ +/* $FreeBSD$ */ /*- * Copyright (c) 1990, 1993 @@ -58,11 +59,11 @@ #define VIS_NOSLASH 0x0040 /* inhibit printing '\' */ #define VIS_HTTP1808 0x0080 /* http-style escape % hex hex */ #define VIS_HTTPSTYLE 0x0080 /* http-style escape % hex hex */ -#define VIS_MIMESTYLE 0x0100 /* mime-style escape = HEX HEX */ -#define VIS_HTTP1866 0x0200 /* http-style &#num; or &string; */ -#define VIS_NOESCAPE 0x0400 /* don't decode `\' */ -#define _VIS_END 0x0800 /* for unvis */ -#define VIS_GLOB 0x1000 /* encode glob(3) magic characters */ +#define VIS_GLOB 0x0100 /* encode glob(3) magic characters */ +#define VIS_MIMESTYLE 0x0200 /* mime-style escape = HEX HEX */ +#define VIS_HTTP1866 0x0400 /* http-style &#num; or &string; */ +#define VIS_NOESCAPE 0x0800 /* don't decode `\' */ +#define _VIS_END 0x1000 /* for unvis */ /* * unvis return codes @@ -106,7 +107,7 @@ int strunvisx(char *, const char *, int) int strnunvisx(char *, size_t, const char *, int); #ifndef __LIBC12_SOURCE__ -int unvis(char *, int, int *, int) __RENAME(__unvis50); +int unvis(char *, int, int *, int); #endif __END_DECLS Modified: head/include/Makefile ============================================================================== --- head/include/Makefile Tue Dec 18 16:15:20 2012 (r244400) +++ head/include/Makefile Tue Dec 18 16:37:24 2012 (r244401) @@ -23,9 +23,12 @@ INCS= a.out.h ar.h assert.h bitstring.h stdnoreturn.h stdio.h stdlib.h string.h stringlist.h \ strings.h sysexits.h tar.h termios.h tgmath.h \ time.h timeconv.h timers.h ttyent.h \ - ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h vis.h \ + ulimit.h unistd.h utime.h utmpx.h uuid.h varargs.h \ wchar.h wctype.h wordexp.h xlocale.h +.PATH: ${.CURDIR}/../contrib/libc-vis +INCS+= vis.h + MHDRS= float.h floatingpoint.h stdarg.h PHDRS= sched.h _semaphore.h Modified: head/lib/libc/gen/Makefile.inc ============================================================================== --- head/lib/libc/gen/Makefile.inc Tue Dec 18 16:15:20 2012 (r244400) +++ head/lib/libc/gen/Makefile.inc Tue Dec 18 16:37:24 2012 (r244401) @@ -32,13 +32,16 @@ SRCS+= __getosreldate.c __xuname.c \ sigsetops.c sleep.c srand48.c statvfs.c stringlist.c strtofflags.c \ sysconf.c sysctl.c sysctlbyname.c sysctlnametomib.c \ syslog.c telldir.c termios.c time.c times.c timezone.c tls.c \ - ttyname.c ttyslot.c ualarm.c ulimit.c uname.c unvis.c \ - usleep.c utime.c utxdb.c valloc.c vis.c wait.c wait3.c waitpid.c \ + ttyname.c ttyslot.c ualarm.c ulimit.c uname.c unvis-compat.c \ + usleep.c utime.c utxdb.c valloc.c wait.c wait3.c waitpid.c \ waitid.c wordexp.c .PATH: ${.CURDIR}/../../contrib/libc-pwcache SRCS+= pwcache.c pwcache.h +.PATH: ${.CURDIR}/../../contrib/libc-vis +SRCS+= unvis.c vis.c + MISRCS+=modf.c CANCELPOINTS_SRCS=sem.c sem_new.c Modified: head/lib/libc/gen/Symbol.map ============================================================================== --- head/lib/libc/gen/Symbol.map Tue Dec 18 16:15:20 2012 (r244400) +++ head/lib/libc/gen/Symbol.map Tue Dec 18 16:37:24 2012 (r244401) @@ -298,9 +298,6 @@ FBSD_1.0 { ualarm; ulimit; uname; - unvis; - strunvis; - strunvisx; usleep; utime; valloc; @@ -388,9 +385,23 @@ FBSD_1.3 { __FreeBSD_libc_enter_restricted_mode; getcontextx; gid_from_group; + nvis; pwcache_userdb; pwcache_groupdb; + snvis; + strnunvis; + strnunvisx; + strunvis; + strunvisx; + strnvis; + strnvisx; + strsnvis; + strsnvisx; + strsvis; + strsvisx; + svis; uid_from_user; + unvis; waitid; }; Added: head/lib/libc/gen/unvis-compat.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/lib/libc/gen/unvis-compat.c Tue Dec 18 16:37:24 2012 (r244401) @@ -0,0 +1,46 @@ +/*- + * Copyright (c) 2012 SRI International + * All rights reserved. + * + * This software was developed by SRI International and the University of + * Cambridge Computer Laboratory under DARPA/AFRL contract (FA8750-10-C-0237) + * ("CTSRD"), as part of the DARPA CRASH research programme. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#include <vis.h> + +#define _UNVIS_END 1 + +int +__unvis_44bsd(char *cp, int c, int *astate, int flag) +{ + + if (flag & _UNVIS_END) + flag = (flag & ~_UNVIS_END) ^ UNVIS_END; + return unvis(cp, c, astate, flag); +} + +__sym_compat(unvis, __vis_44bsd, FBSD_1.0);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201212181637.qBIGbP7e084145>