diff options
Diffstat (limited to 'japanese/mh/files/patch-sbr_concat.c')
-rw-r--r-- | japanese/mh/files/patch-sbr_concat.c | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/japanese/mh/files/patch-sbr_concat.c b/japanese/mh/files/patch-sbr_concat.c new file mode 100644 index 000000000000..4ce5e81910d9 --- /dev/null +++ b/japanese/mh/files/patch-sbr_concat.c @@ -0,0 +1,55 @@ +--- sbr/concat.c.orig 1993-12-01 04:01:21 UTC ++++ sbr/concat.c +@@ -2,34 +2,40 @@ + + #include "../h/mh.h" + #include <stdio.h> +-#include <varargs.h> ++#include <stdarg.h> + + + /* VARARGS */ + +-char *concat (va_alist) +-va_dcl ++char *concat (char *first, ...) + { + register char *cp, + *dp, + *sp; + register unsigned len; +- register va_list list; ++ va_list list; + + len = 1; +- va_start (list); +- while (cp = va_arg (list, char *)) +- len += strlen (cp); +- va_end (list); ++ if (first) { ++ len += strlen (first); ++ va_start (list, first); ++ while (cp = va_arg (list, char *)) ++ len += strlen (cp); ++ va_end (list); ++ } + + dp = sp = malloc (len); + if (dp == NULL) + adios (NULLCP, "unable to allocate string storage"); + +- va_start (list); +- while (cp = va_arg (list, char *)) +- sp = copy (cp, sp); +- va_end (list); ++ *sp = '\0'; ++ if (first) { ++ sp = copy (first, sp); ++ va_start (list, first); ++ while (cp = va_arg (list, char *)) ++ sp = copy (cp, sp); ++ va_end (list); ++ } + + return dp; + } |