Mercurial > hg > toybox
changeset 1235:63db77909fc8 draft
Group headers by standard (POSIX or LSB) or function (internationalization, networking). Move headers standards ignore (but which have been there >15 years) to lib/portability.h. Fold xregcomp into lib since it's posix.
author | Rob Landley <rob@landley.net> |
---|---|
date | Sat, 29 Mar 2014 18:11:00 -0500 |
parents | c99c215b4604 |
children | 1f4a56212c83 |
files | lib/lib.h lib/password.c lib/portability.h lib/xregcomp.c lib/xregcomp.h lib/xwrap.c toys.h toys/pending/mdev.c toys/pending/mkpasswd.c toys/pending/sed.c toys/posix/nl.c |
diffstat | 11 files changed, 38 insertions(+), 49 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/lib.h Sat Mar 29 15:25:23 2014 -0500 +++ b/lib/lib.h Sat Mar 29 18:11:00 2014 -0500 @@ -117,6 +117,7 @@ char *xreadlink(char *name); long xparsetime(char *arg, long units, long *fraction); void xpidfile(char *name); +void xregcomp(regex_t *preg, char *rexec, int cflags); // lib.c void verror_msg(char *msg, int err, va_list va); @@ -178,4 +179,5 @@ void mode_to_string(mode_t mode, char *buf); void names_to_pid(char **names, int (*callback)(pid_t pid, char *name)); +// Functions in need of further review/cleanup #include "lib/pending.h"
--- a/lib/password.c Sat Mar 29 15:25:23 2014 -0500 +++ b/lib/password.c Sat Mar 29 18:11:00 2014 -0500 @@ -4,7 +4,6 @@ */ #include "toys.h" -#include "xregcomp.h" #include <time.h> int get_salt(char *salt, char *algo)
--- a/lib/portability.h Sat Mar 29 15:25:23 2014 -0500 +++ b/lib/portability.h Sat Mar 29 18:11:00 2014 -0500 @@ -13,6 +13,9 @@ #undef _FORTIFY_SOURCE +// For musl +#define _ALL_SOURCE + // Test for gcc (using compiler builtin #define) #ifdef __GNUC__ @@ -150,5 +153,10 @@ ssize_t getline(char **lineptr, size_t *n, FILE *stream); #endif +// Linux headers not listed by POSIX or LSB +#include <shadow.h> +#include <sys/mount.h> +#include <sys/swap.h> + // compile time probes for stuff libc didn't provide #include "generated/portability.h"
--- a/lib/xregcomp.c Sat Mar 29 15:25:23 2014 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* Call regcomp() and handle errors. - * - * Copyright 2007 Rob Landley <rob@landley.net> - * - * This is a separate file so environments that haven't got regular expression - * support can configure this out and avoid a build break. - */ - -#include "toys.h" -#include "xregcomp.h" - -void xregcomp(regex_t *preg, char *regex, int cflags) -{ - int rc = regcomp(preg, regex, cflags); - - if (rc) { - char msg[256]; - regerror(rc, preg, msg, 255); - msg[255]=0; - error_exit("xregcomp: %s", msg); - } -}
--- a/lib/xregcomp.h Sat Mar 29 15:25:23 2014 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -/* This is a separate file so libc doesn't always need regex support. */ - -#include <sys/types.h> -#include <regex.h> - -void xregcomp(regex_t *preg, char *rexec, int cflags);
--- a/lib/xwrap.c Sat Mar 29 15:25:23 2014 -0500 +++ b/lib/xwrap.c Sat Mar 29 18:11:00 2014 -0500 @@ -514,3 +514,14 @@ return l; } + +// Compile a regular expression into a regex_t +void xregcomp(regex_t *preg, char *regex, int cflags) +{ + int rc = regcomp(preg, regex, cflags); + + if (rc) { + regerror(rc, preg, libbuf, sizeof(libbuf)); + error_exit("xregcomp: %s", libbuf); + } +}
--- a/toys.h Sat Mar 29 15:25:23 2014 -0500 +++ b/toys.h Sat Mar 29 18:11:00 2014 -0500 @@ -3,10 +3,12 @@ * Copyright 2006 Rob Landley <rob@landley.net> */ +// Stuff that needs to go before the standard headers + #include "generated/config.h" - #include "lib/portability.h" +// General posix-2008 headers #include <ctype.h> #include <dirent.h> #include <errno.h> @@ -16,12 +18,10 @@ #include <limits.h> #include <libgen.h> #include <math.h> -#include <pty.h> #include <pwd.h> +#include <regex.h> #include <sched.h> #include <setjmp.h> -#include <sched.h> -#include <shadow.h> #include <stdarg.h> #include <stddef.h> #include <stdint.h> @@ -29,15 +29,10 @@ #include <stdlib.h> #include <string.h> #include <strings.h> -#include <sys/ioctl.h> #include <sys/mman.h> -#include <sys/mount.h> #include <sys/resource.h> #include <sys/stat.h> -#include <sys/statfs.h> #include <sys/statvfs.h> -#include <sys/sysinfo.h> -#include <sys/swap.h> #include <sys/time.h> #include <sys/times.h> #include <sys/types.h> @@ -49,13 +44,7 @@ #include <utime.h> #include <utmpx.h> -// Internationalization support - -#include <locale.h> -#include <wchar.h> -#include <wctype.h> - -// Networking stuff +// Posix networking #include <arpa/inet.h> #include <netdb.h> @@ -66,6 +55,18 @@ #include <sys/socket.h> #include <sys/un.h> +// Internationalization support (also in POSIX and LSB) + +#include <locale.h> +#include <wchar.h> +#include <wctype.h> + +// LSB 4.1 headers +#include <pty.h> +#include <sys/ioctl.h> +#include <sys/statfs.h> +#include <sys/sysinfo.h> + #include "lib/lib.h" #include "toys/e2fs.h"
--- a/toys/pending/mdev.c Sat Mar 29 15:25:23 2014 -0500 +++ b/toys/pending/mdev.c Sat Mar 29 18:11:00 2014 -0500 @@ -30,7 +30,6 @@ */ #include "toys.h" -#include "lib/xregcomp.h" // todo, open() block devices to trigger partition scanning.
--- a/toys/pending/mkpasswd.c Sat Mar 29 15:25:23 2014 -0500 +++ b/toys/pending/mkpasswd.c Sat Mar 29 18:11:00 2014 -0500 @@ -22,7 +22,6 @@ #define FOR_mkpasswd #include "toys.h" -#include "lib/xregcomp.h" GLOBALS( long pfd;