summaryrefslogtreecommitdiff
path: root/Build/source/texk/mendexk
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2014-06-18 11:56:23 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2014-06-18 11:56:23 +0000
commit081d7946faa61fc306f13b99d8e6af921d1af111 (patch)
treef2febc9b4dd87f26e62fdad37390e7e1d49ddb1b /Build/source/texk/mendexk
parent508bffe4408ab137d9057b15075c94e1578b619d (diff)
texk/*/: Drop the obsolete ACLOCAL_AMFLAGS
git-svn-id: svn://tug.org/texlive/trunk@34287 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/mendexk')
-rw-r--r--Build/source/texk/mendexk/ChangeLog6
-rw-r--r--Build/source/texk/mendexk/Makefile.am2
-rw-r--r--Build/source/texk/mendexk/Makefile.in1
-rw-r--r--Build/source/texk/mendexk/c-auto.in3
-rwxr-xr-xBuild/source/texk/mendexk/configure35
-rw-r--r--Build/source/texk/mendexk/configure.ac11
-rw-r--r--Build/source/texk/mendexk/fwrite.c146
7 files changed, 141 insertions, 63 deletions
diff --git a/Build/source/texk/mendexk/ChangeLog b/Build/source/texk/mendexk/ChangeLog
index 7782fc84f0c..f5dc6dbee3e 100644
--- a/Build/source/texk/mendexk/ChangeLog
+++ b/Build/source/texk/mendexk/ChangeLog
@@ -1,3 +1,9 @@
+2014-06-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * Makefile.am: Drop the obsolete ACLOCAL_AMFLAGS.
+ * configure.ac: Check for C99 variadic macros.
+ * fwrite.c: Better handling of snprintf().
+
2014-05-13 Peter Breitenlohner <peb@mppmu.mpg.de>
* fread.c (copy_multibyte_char): Avoid ambiguous operation.
diff --git a/Build/source/texk/mendexk/Makefile.am b/Build/source/texk/mendexk/Makefile.am
index b9b4add0044..69d1ae0a6a3 100644
--- a/Build/source/texk/mendexk/Makefile.am
+++ b/Build/source/texk/mendexk/Makefile.am
@@ -3,8 +3,6 @@
## Copyright (C) 2010-2014 Peter Breitenlohner <tex-live@tug.org>
## You may freely use, modify and/or distribute this file.
##
-ACLOCAL_AMFLAGS = -I ../../m4
-
AM_CPPFLAGS = $(PTEXENC_INCLUDES) $(KPATHSEA_INCLUDES)
AM_CFLAGS = $(WARNING_CFLAGS)
diff --git a/Build/source/texk/mendexk/Makefile.in b/Build/source/texk/mendexk/Makefile.in
index 3b0027d4b46..7690edaa4b9 100644
--- a/Build/source/texk/mendexk/Makefile.in
+++ b/Build/source/texk/mendexk/Makefile.in
@@ -534,7 +534,6 @@ target_alias = @target_alias@
top_build_prefix = @top_build_prefix@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-ACLOCAL_AMFLAGS = -I ../../m4
AM_CPPFLAGS = $(PTEXENC_INCLUDES) $(KPATHSEA_INCLUDES)
AM_CFLAGS = $(WARNING_CFLAGS)
mendex_SOURCES = \
diff --git a/Build/source/texk/mendexk/c-auto.in b/Build/source/texk/mendexk/c-auto.in
index 6f34cd18961..b8852321593 100644
--- a/Build/source/texk/mendexk/c-auto.in
+++ b/Build/source/texk/mendexk/c-auto.in
@@ -105,6 +105,9 @@
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
+/* Define to 1 if you have C99 variadic macros. */
+#undef HAVE___VA_ARGS__
+
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
diff --git a/Build/source/texk/mendexk/configure b/Build/source/texk/mendexk/configure
index 13ed4d842d2..f0d03a1e1d6 100755
--- a/Build/source/texk/mendexk/configure
+++ b/Build/source/texk/mendexk/configure
@@ -12912,6 +12912,41 @@ fi
ac_config_headers="$ac_config_headers c-auto.h:c-auto.in"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if C99 variadic macros are supported" >&5
+$as_echo_n "checking if C99 variadic macros are supported... " >&6; }
+if ${kpse_cv_have___VA_ARGS__+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+#define foo(format, ...) printf(format, __VA_ARGS__)
+int
+main ()
+{
+foo("%s\n", "Hi, there");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ kpse_cv_have___VA_ARGS__=yes
+else
+ kpse_cv_have___VA_ARGS__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $kpse_cv_have___VA_ARGS__" >&5
+$as_echo "$kpse_cv_have___VA_ARGS__" >&6; }
+case $kpse_cv_have___VA_ARGS__ in #(
+ yes) :
+
+$as_echo "#define HAVE___VA_ARGS__ 1" >>confdefs.h
+ ;; #(
+ *) :
+ ;;
+esac
+
kpse_save_CPPFLAGS=$CPPFLAGS
kpse_save_LIBS=$LIBS
diff --git a/Build/source/texk/mendexk/configure.ac b/Build/source/texk/mendexk/configure.ac
index ebb9f00b24e..63d76c1a2a3 100644
--- a/Build/source/texk/mendexk/configure.ac
+++ b/Build/source/texk/mendexk/configure.ac
@@ -17,6 +17,17 @@ KPSE_COMMON([mendexk], [no-define])
AC_CONFIG_HEADERS([c-auto.h:c-auto.in])
+AC_CACHE_CHECK([if C99 variadic macros are supported],
+ [kpse_cv_have___VA_ARGS__],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
+#define foo(format, ...) printf(format, __VA_ARGS__)]],
+ [[foo("%s\n", "Hi, there");]])],
+ [kpse_cv_have___VA_ARGS__=yes],
+ [kpse_cv_have___VA_ARGS__=no])])
+AS_CASE([$kpse_cv_have___VA_ARGS__],
+ [yes], [AC_DEFINE([HAVE___VA_ARGS__], 1,
+ [Define to 1 if you have C99 variadic macros.])])
+
KPSE_KPATHSEA_FLAGS
KPSE_PTEXENC_FLAGS
diff --git a/Build/source/texk/mendexk/fwrite.c b/Build/source/texk/mendexk/fwrite.c
index 80e7b77cbba..81030e7e94a 100644
--- a/Build/source/texk/mendexk/fwrite.c
+++ b/Build/source/texk/mendexk/fwrite.c
@@ -17,13 +17,39 @@ static int range_check(struct index ind, int count, char *lbuff);
static void linecheck(char *lbuff, char *tmpbuff);
static void crcheck(char *lbuff, FILE *fp);
-/* OS X defines snprintf() as macro that chokes on using TAIL_LEN */
-#ifdef __APPLE__
-#undef snprintf
-#endif
-
#define BUFFERLEN 4096
-#define TAIL_LEN(x) ((x)+strlen(x)), (BUFFERLEN-strlen(x))
+
+#ifdef HAVE___VA_ARGS__
+/* Use C99 variadic macros if they are supported. */
+#define SPRINTF(buf, ...) \
+ snprintf(buf, sizeof(buf), __VA_ARGS__)
+#define SAPPENDF(buf, ...) \
+ snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), __VA_ARGS__)
+#else
+/* Alternatively use static inline functions (all buffers have size BUFFERLEN). */
+static inline int SPRINTF(char *buf, const char *format, ...)
+{
+ va_list argptr;
+ int n;
+
+ va_start(argptr, format);
+ n = vsnprintf(buf, BUFFERLEN, format, argptr);
+ va_end(argptr);
+
+ return n;
+}
+static inline int SAPPENDF(char *buf, const char *format, ...)
+{
+ va_list argptr;
+ int n;
+
+ va_start(argptr, format);
+ n = vsnprintf(buf + strlen(buf), BUFFERLEN - strlen(buf), format, argptr);
+ va_end(argptr);
+
+ return n;
+}
+#endif
static void fprint_euc_char(FILE *fp, const char a, const char b)
{
@@ -127,7 +153,7 @@ void indwrite(char *filename, struct index *ind, int pagenum)
fprintf(fp,"%s%s%s",lethead_prefix,symhead_negative,lethead_suffix);
}
}
- snprintf(lbuff,BUFFERLEN,"%s%s",item_0,ind[i].idx[0]);
+ SPRINTF(lbuff,"%s%s",item_0,ind[i].idx[0]);
}
else if (alphabet(ind[i].dic[0][0])) {
if (lethead_flag>0) {
@@ -136,7 +162,7 @@ void indwrite(char *filename, struct index *ind, int pagenum)
else if (lethead_flag<0) {
fprintf(fp,"%s%c%s",lethead_prefix,ind[i].dic[0][0]+32,lethead_suffix);
}
- snprintf(lbuff,BUFFERLEN,"%s%s",item_0,ind[i].idx[0]);
+ SPRINTF(lbuff,"%s%s",item_0,ind[i].idx[0]);
}
else if (japanese(ind[i].dic[0])) {
if (lethead_flag) {
@@ -153,7 +179,7 @@ void indwrite(char *filename, struct index *ind, int pagenum)
}
fputs(lethead_suffix,fp);
}
- snprintf(lbuff,BUFFERLEN,"%s%s",item_0,ind[i].idx[0]);
+ SPRINTF(lbuff,"%s%s",item_0,ind[i].idx[0]);
for (hpoint=0;hpoint<(strlen(datama)/2);hpoint++) {
if ((unsigned char)ind[i].dic[0][1]<(unsigned char)datama[hpoint*2+1]) {
break;
@@ -162,18 +188,18 @@ void indwrite(char *filename, struct index *ind, int pagenum)
}
switch (ind[i].words) {
case 1:
- snprintf(TAIL_LEN(lbuff),"%s",delim_0);
+ SAPPENDF(lbuff,"%s",delim_0);
break;
case 2:
- snprintf(TAIL_LEN(lbuff),"%s%s",item_x1,ind[i].idx[1]);
- snprintf(TAIL_LEN(lbuff),"%s",delim_1);
+ SAPPENDF(lbuff,"%s%s",item_x1,ind[i].idx[1]);
+ SAPPENDF(lbuff,"%s",delim_1);
break;
case 3:
- snprintf(TAIL_LEN(lbuff),"%s%s",item_x1,ind[i].idx[1]);
- snprintf(TAIL_LEN(lbuff),"%s%s",item_x2,ind[i].idx[2]);
- snprintf(TAIL_LEN(lbuff),"%s",delim_2);
+ SAPPENDF(lbuff,"%s%s",item_x1,ind[i].idx[1]);
+ SAPPENDF(lbuff,"%s%s",item_x2,ind[i].idx[2]);
+ SAPPENDF(lbuff,"%s",delim_2);
break;
default:
@@ -229,41 +255,41 @@ void indwrite(char *filename, struct index *ind, int pagenum)
switch (ind[i].words) {
case 1:
- snprintf(TAIL_LEN(lbuff),"%s%s%s",item_0,ind[i].idx[0],delim_0);
+ SAPPENDF(lbuff,"%s%s%s",item_0,ind[i].idx[0],delim_0);
break;
case 2:
if (strcmp(ind[i-1].idx[0],ind[i].idx[0])!=0 || strcmp(ind[i-1].dic[0],ind[i].dic[0])!=0) {
- snprintf(TAIL_LEN(lbuff),"%s%s%s",item_0,ind[i].idx[0],item_x1);
+ SAPPENDF(lbuff,"%s%s%s",item_0,ind[i].idx[0],item_x1);
}
else {
if (ind[i-1].words==1) {
- snprintf(TAIL_LEN(lbuff),"%s",item_01);
+ SAPPENDF(lbuff,"%s",item_01);
}
else {
- snprintf(TAIL_LEN(lbuff),"%s",item_1);
+ SAPPENDF(lbuff,"%s",item_1);
}
}
- snprintf(TAIL_LEN(lbuff),"%s",ind[i].idx[1]);
- snprintf(TAIL_LEN(lbuff),"%s",delim_1);
+ SAPPENDF(lbuff,"%s",ind[i].idx[1]);
+ SAPPENDF(lbuff,"%s",delim_1);
break;
case 3:
if (strcmp(ind[i-1].idx[0],ind[i].idx[0])!=0 || strcmp(ind[i-1].dic[0],ind[i].dic[0])!=0) {
- snprintf(TAIL_LEN(lbuff),"%s%s",item_0,ind[i].idx[0]);
- snprintf(TAIL_LEN(lbuff),"%s%s%s",item_x1,ind[i].idx[1],item_x2);
+ SAPPENDF(lbuff,"%s%s",item_0,ind[i].idx[0]);
+ SAPPENDF(lbuff,"%s%s%s",item_x1,ind[i].idx[1],item_x2);
}
else if (ind[i-1].words==1) {
- snprintf(TAIL_LEN(lbuff),"%s%s%s",item_01,ind[i].idx[1],item_x2);
+ SAPPENDF(lbuff,"%s%s%s",item_01,ind[i].idx[1],item_x2);
}
else if (strcmp(ind[i-1].idx[1],ind[i].idx[1])!=0 || strcmp(ind[i-1].dic[1],ind[i].dic[1])!=0) {
- if (ind[i-1].words==2) snprintf(TAIL_LEN(lbuff),"%s%s%s",item_1,ind[i].idx[1],item_12);
- else snprintf(TAIL_LEN(lbuff),"%s%s%s",item_1,ind[i].idx[1],item_x2);
+ if (ind[i-1].words==2) SAPPENDF(lbuff,"%s%s%s",item_1,ind[i].idx[1],item_12);
+ else SAPPENDF(lbuff,"%s%s%s",item_1,ind[i].idx[1],item_x2);
}
else {
- snprintf(TAIL_LEN(lbuff),"%s",item_2);
+ SAPPENDF(lbuff,"%s",item_2);
}
- snprintf(TAIL_LEN(lbuff),"%s%s",ind[i].idx[2],delim_2);
+ SAPPENDF(lbuff,"%s%s",ind[i].idx[2],delim_2);
break;
default:
@@ -300,25 +326,25 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
|| ind[num].p[j].enc[0]==range_close)
ind[num].p[j].enc++;
if (strlen(ind[num].p[j].enc)>0) {
- snprintf(buff,BUFFERLEN,"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
+ SPRINTF(buff,"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
}
if (strlen(suffix_3p)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))==2) {
- snprintf(TAIL_LEN(buff),"%s%s",ind[num].p[j].page,suffix_3p);
+ SAPPENDF(buff,"%s%s",ind[num].p[j].page,suffix_3p);
}
else if (strlen(suffix_mp)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))>=2) {
- snprintf(TAIL_LEN(buff),"%s%s",ind[num].p[j].page,suffix_mp);
+ SAPPENDF(buff,"%s%s",ind[num].p[j].page,suffix_mp);
}
else if (strlen(suffix_2p)>0 && (pnumconv(ind[num].p[cc].page,ind[num].p[cc].attr[0])-pnumconv(ind[num].p[j].page,ind[num].p[j].attr[0]))==1) {
- snprintf(TAIL_LEN(buff),"%s%s",ind[num].p[j].page,suffix_2p);
+ SAPPENDF(buff,"%s%s",ind[num].p[j].page,suffix_2p);
}
else {
- snprintf(TAIL_LEN(buff),"%s%s",ind[num].p[j].page,delim_r);
- snprintf(TAIL_LEN(buff),"%s",ind[num].p[cc].page);
+ SAPPENDF(buff,"%s%s",ind[num].p[j].page,delim_r);
+ SAPPENDF(buff,"%s",ind[num].p[cc].page);
}
- snprintf(TAIL_LEN(tmpbuff),"%s",buff);
+ SAPPENDF(tmpbuff,"%s",buff);
buff[0]='\0';
if (strlen(ind[num].p[j].enc)>0) {
- snprintf(TAIL_LEN(tmpbuff),"%s",encap_suffix);
+ SAPPENDF(tmpbuff,"%s",encap_suffix);
}
linecheck(lbuff,tmpbuff);
j=cc;
@@ -326,53 +352,53 @@ static void printpage(struct index *ind, FILE *fp, int num, char *lbuff)
goto PRINT;
}
else {
- snprintf(TAIL_LEN(tmpbuff),"%s",delim_n);
+ SAPPENDF(tmpbuff,"%s",delim_n);
linecheck(lbuff,tmpbuff);
}
}
else if (strlen(ind[num].p[j].enc)>0) {
/* normal encap */
if (ind[num].p[j].enc[0]==range_close) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range closing operator \'%c\',",range_close);
- for (i=0;i<ind[num].words;i++) snprintf(TAIL_LEN(errbuff),"%s.",ind[num].idx[i]);
+ SPRINTF(errbuff,"Warning: Unmatched range closing operator \'%c\',",range_close);
+ for (i=0;i<ind[num].words;i++) SAPPENDF(errbuff,"%s.",ind[num].idx[i]);
warn_printf(efp, "%s\n", errbuff);
ind[num].p[j].enc++;
}
if (strlen(ind[num].p[j].enc)>0) {
- snprintf(TAIL_LEN(tmpbuff),"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
- snprintf(TAIL_LEN(tmpbuff),"%s%s%s",ind[num].p[j].page,encap_suffix,delim_n);
+ SAPPENDF(tmpbuff,"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
+ SAPPENDF(tmpbuff,"%s%s%s",ind[num].p[j].page,encap_suffix,delim_n);
linecheck(lbuff,tmpbuff);
}
else {
- snprintf(TAIL_LEN(tmpbuff),"%s%s",ind[num].p[j].page,delim_n);
+ SAPPENDF(tmpbuff,"%s%s",ind[num].p[j].page,delim_n);
linecheck(lbuff,tmpbuff);
}
}
else {
/* no encap */
- snprintf(TAIL_LEN(tmpbuff),"%s%s",ind[num].p[j].page,delim_n);
+ SAPPENDF(tmpbuff,"%s%s",ind[num].p[j].page,delim_n);
linecheck(lbuff,tmpbuff);
}
}
if (ind[num].p[j].enc[0]==range_open) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range opening operator \'%c\',",range_open);
- for (k=0;k<ind[num].words;k++) snprintf(TAIL_LEN(errbuff),"%s.",ind[num].idx[k]);
+ SPRINTF(errbuff,"Warning: Unmatched range opening operator \'%c\',",range_open);
+ for (k=0;k<ind[num].words;k++) SAPPENDF(errbuff,"%s.",ind[num].idx[k]);
warn_printf(efp, "%s\n", errbuff);
ind[num].p[j].enc++;
}
else if (ind[num].p[j].enc[0]==range_close) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range closing operator \'%c\',",range_close);
- for (k=0;k<ind[num].words;k++) snprintf(TAIL_LEN(errbuff),"%s.",ind[num].idx[k]);
+ SPRINTF(errbuff,"Warning: Unmatched range closing operator \'%c\',",range_close);
+ for (k=0;k<ind[num].words;k++) SAPPENDF(errbuff,"%s.",ind[num].idx[k]);
warn_printf(efp, "%s\n", errbuff);
ind[num].p[j].enc++;
}
if (strlen(ind[num].p[j].enc)>0) {
- snprintf(TAIL_LEN(tmpbuff),"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
- snprintf(TAIL_LEN(tmpbuff),"%s%s",ind[num].p[j].page,encap_suffix);
+ SAPPENDF(tmpbuff,"%s%s%s",encap_prefix,ind[num].p[j].enc,encap_infix);
+ SAPPENDF(tmpbuff,"%s%s",ind[num].p[j].page,encap_suffix);
}
else {
- snprintf(TAIL_LEN(tmpbuff),"%s",ind[num].p[j].page);
+ SAPPENDF(tmpbuff,"%s",ind[num].p[j].page);
}
linecheck(lbuff,tmpbuff);
@@ -389,8 +415,8 @@ static int range_check(struct index ind, int count, char *lbuff)
for (i=count;i<ind.num+1;i++) {
if (ind.p[i].enc[0]==range_close) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range closing operator \'%c\',",range_close);
- snprintf(TAIL_LEN(errbuff),"%s.",ind.idx[0]);
+ SPRINTF(errbuff,"Warning: Unmatched range closing operator \'%c\',",range_close);
+ SAPPENDF(errbuff,"%s.",ind.idx[0]);
warn_printf(efp, "%s\n", errbuff);
ind.p[i].enc++;
}
@@ -406,21 +432,21 @@ static int range_check(struct index ind, int count, char *lbuff)
break;
}
else if (j!=i && ind.p[j].enc[0]==range_open) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range opening operator \'%c\',",range_open);
- for (k=0;k<ind.words;k++) snprintf(TAIL_LEN(errbuff),"%s.",ind.idx[k]);
+ SPRINTF(errbuff,"Warning: Unmatched range opening operator \'%c\',",range_open);
+ for (k=0;k<ind.words;k++) SAPPENDF(errbuff,"%s.",ind.idx[k]);
warn_printf(efp, "%s\n", errbuff);
ind.p[j].enc++;
}
if (strlen(ind.p[j].enc)>0) {
- snprintf(tmpbuff,BUFFERLEN,"%s%s%s",encap_prefix,ind.p[j].enc,encap_infix);
- snprintf(TAIL_LEN(tmpbuff),"%s%s%s",ind.p[j].page,encap_suffix,delim_n);
+ SPRINTF(tmpbuff,"%s%s%s",encap_prefix,ind.p[j].enc,encap_infix);
+ SAPPENDF(tmpbuff,"%s%s%s",ind.p[j].page,encap_suffix,delim_n);
linecheck(lbuff,tmpbuff);
}
}
}
if (j==ind.num+1) {
- snprintf(errbuff,BUFFERLEN,"Warning: Unmatched range opening operator \'%c\',",range_open);
- for (k=0;k<ind.words;k++) snprintf(TAIL_LEN(errbuff),"%s.",ind.idx[k]);
+ SPRINTF(errbuff,"Warning: Unmatched range opening operator \'%c\',",range_open);
+ for (k=0;k<ind.words;k++) SAPPENDF(errbuff,"%s.",ind.idx[k]);
warn_printf(efp, "%s\n", errbuff);
}
i=j-1;
@@ -452,12 +478,12 @@ static int range_check(struct index ind, int count, char *lbuff)
static void linecheck(char *lbuff, char *tmpbuff)
{
if (line_length+strlen(tmpbuff)>line_max) {
- snprintf(TAIL_LEN(lbuff),"\n%s%s",indent_space,tmpbuff);
+ SAPPENDF(lbuff,"\n%s%s",indent_space,tmpbuff);
line_length=indent_length+strlen(tmpbuff);
tmpbuff[0]='\0';
}
else {
- snprintf(TAIL_LEN(lbuff),"%s",tmpbuff);
+ SAPPENDF(lbuff,"%s",tmpbuff);
line_length+=strlen(tmpbuff);
tmpbuff[0]='\0';
}