From 39d360c6f585f566c08e63517bef77c4f43c3c67 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Sat, 3 Oct 2020 20:05:57 +1000 Subject: [PATCH] Split non-static code out of wiggle.c wiggle.c container some code that other files reference. Now that this other file can live in a library (libwiggle), move that code into a new file - util.c - so it is available in the library. Signed-off-by: NeilBrown --- Makefile | 2 +- utils.c | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ wiggle.c | 45 --------------------------------- 3 files changed, 77 insertions(+), 46 deletions(-) create mode 100644 utils.c diff --git a/Makefile b/Makefile index 2311067..6942775 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ O=O BIN=. DOC=. -LIBOBJ= load.o parse.o split.o extract.o diff.o bestmatch.o merge2.o ccan/hash/hash.o +LIBOBJ= load.o parse.o split.o extract.o diff.o bestmatch.o merge2.o utils.o ccan/hash/hash.o OBJ=wiggle.o ReadMe.o vpatch.o BOBJ=$(patsubst %.o,$(O)/%.o,$(OBJ)) diff --git a/utils.c b/utils.c new file mode 100644 index 0000000..37e9a32 --- /dev/null +++ b/utils.c @@ -0,0 +1,76 @@ +/* + * wiggle - apply rejected patches + * + * Copyright (C) 2003 Neil Brown + * Copyright (C) 2010-2013 Neil Brown + * Copyright (C) 2014-2020 Neil Brown + * + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. + * + * Author: Neil Brown + * Email: + */ + +#include "wiggle.h" +#include +#include +#include + +char *Cmd = "wiggle"; + +int do_trace = 0; + +void *xmalloc(int size) +{ + void *rv = malloc(size); + if (size && !rv) { + char *msg = "Failed to allocate memory - aborting\n"; + write(2, msg, strlen(msg)); + exit(3); + } + return rv; +} + +void printword(FILE *f, struct elmnt e) +{ + if (e.start[0]) + fprintf(f, "%.*s", e.plen + e.prefix, + e.start - e.prefix); + else { + int a, b, c; + sscanf(e.start+1, "%d %d %d", &a, &b, &c); + fprintf(f, "*** %d,%d **** %d%s", b, c, a, e.start+18); + } +} + +void die(char *reason) +{ + fprintf(stderr, "%s: fatal error: %s failure\n", Cmd, reason); + exit(3); +} + +void check_dir(char *name, int fd) +{ + struct stat st; + if (fstat(fd, &st) != 0) { + fprintf(stderr, "%s: fatal: %s is strange\n", Cmd, name); + exit(3); + } + if (S_ISDIR(st.st_mode)) { + fprintf(stderr, "%s: %s is a directory\n", Cmd, name); + exit(3); + } +} + diff --git a/wiggle.c b/wiggle.c index efdd396..e7444a8 100644 --- a/wiggle.c +++ b/wiggle.c @@ -90,51 +90,6 @@ #include #include -char *Cmd = "wiggle"; -int do_trace = 0; - -void die(char *reason) -{ - fprintf(stderr, "%s: fatal error: %s failure\n", Cmd, reason); - exit(3); -} - -void check_dir(char *name, int fd) -{ - struct stat st; - if (fstat(fd, &st) != 0) { - fprintf(stderr, "%s: fatal: %s is strange\n", Cmd, name); - exit(3); - } - if (S_ISDIR(st.st_mode)) { - fprintf(stderr, "%s: %s is a directory\n", Cmd, name); - exit(3); - } -} - -void *xmalloc(int size) -{ - void *rv = malloc(size); - if (size && !rv) { - char *msg = "Failed to allocate memory - aborting\n"; - write(2, msg, strlen(msg)); - exit(3); - } - return rv; -} - -void printword(FILE *f, struct elmnt e) -{ - if (e.start[0]) - fprintf(f, "%.*s", e.plen + e.prefix, - e.start - e.prefix); - else { - int a, b, c; - sscanf(e.start+1, "%d %d %d", &a, &b, &c); - fprintf(f, "*** %d,%d **** %d%s", b, c, a, e.start+18); - } -} - static void printsep(struct elmnt e1, struct elmnt e2) { int a, b, c, d, e, f;