Mercurial > hg > aboriginal
view sources/patches/toybox-patch2.patch @ 1228:8a88cae14011
Remove RW_SYSTEM_IMAGE option. The gentoo-stage1 build shows how to setup a writeable chroot, and the FAQ says how to build a writeable system image. I'm not shipping two different system iamges, then I'd have to explain it and it's not worth the confusion.
author | Rob Landley <rob@landley.net> |
---|---|
date | Tue, 24 Aug 2010 02:53:11 -0500 |
parents | 2d7f75e31316 |
children |
line wrap: on
line source
The @@ -1,2 +3,4 @@ lines treat ,1 as implied, so the format isn't regular. (Yes, this was designed by the FSF, what gave it away?) diff -r 35c8beb54800 toys/patch.c --- a/toys/patch.c Sun Feb 28 14:11:41 2010 -0600 +++ b/toys/patch.c Wed Jun 30 14:26:46 2010 -0500 @@ -51,7 +51,8 @@ long prefix; struct double_list *current_hunk; - long oldline, oldlen, newline, newlen, linenum; + long oldline, oldlen, newline, newlen; + long linenum; int context, state, filein, fileout, filepatch, hunknum; char *tempname; ) @@ -308,14 +309,19 @@ // way the patch man page says, so you have to read the first hunk // and _guess_. - // Start a new hunk? + // Start a new hunk? Usually @@ -oldline,oldlen +newline,newlen @@ + // but a missing ,value means the value is 1. } else if (state == 1 && !strncmp("@@ -", patchline, 4)) { int i; + char *s = patchline+4; - i = sscanf(patchline+4, "%ld,%ld +%ld,%ld", &TT.oldline, - &TT.oldlen, &TT.newline, &TT.newlen); - if (i != 4) - error_exit("Corrupt hunk %d at %ld\n", TT.hunknum, TT.linenum); + // Read oldline[,oldlen] +newline[,newlen] + + TT.oldlen = TT.newlen = 1; + TT.oldline = strtol(s, &s, 10); + if (*s == ',') TT.oldlen=strtol(s+1, &s, 10); + TT.newline = strtol(s+2, &s, 10); + if (*s == ',') TT.newlen = strtol(s+1, &s, 10); TT.context = 0; state = 2; @@ -323,7 +329,7 @@ // If this is the first hunk, open the file. if (TT.filein == -1) { int oldsum, newsum, del = 0; - char *s, *name; + char *name; oldsum = TT.oldline + TT.oldlen; newsum = TT.newline + TT.newlen;