diff options
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-extended/slang/slang')
6 files changed, 593 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/0001-Fix-error-conflicting-types-for-posix_close.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/0001-Fix-error-conflicting-types-for-posix_close.patch new file mode 100644 index 000000000..57ebfe432 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/0001-Fix-error-conflicting-types-for-posix_close.patch @@ -0,0 +1,39 @@ +From 96eb7e29822151823a66a1eb59f1fa4aead5ae08 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 31 Aug 2015 06:33:21 +0000 +Subject: [PATCH] Fix error: conflicting types for 'posix_close' + +Exposed while compiling on musl + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- +Upstream-Status: Pending + + src/slposio.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/slposio.c b/src/slposio.c +index 9ce9697..9ff9bfe 100644 +--- a/src/slposio.c ++++ b/src/slposio.c +@@ -363,7 +363,7 @@ static int posix_close_fd (int *fd) + return 0; + } + +-static int posix_close (SLFile_FD_Type *f) ++static int posix_closex (SLFile_FD_Type *f) + { + int status = do_close (f); + +@@ -1001,7 +1001,7 @@ static SLang_Intrin_Fun_Type Fd_Name_Table [] = + MAKE_INTRINSIC_2("write", posix_write, V, F, B), + MAKE_INTRINSIC_1("dup_fd", posix_dup, V, F), + MAKE_INTRINSIC_2("dup2_fd", posix_dup2, I, F, I), +- MAKE_INTRINSIC_1("close", posix_close, I, F), ++ MAKE_INTRINSIC_1("close", posix_closex, I, F), + MAKE_INTRINSIC_1("_close", posix_close_fd, I, I), + #if defined(TTYNAME_R) + MAKE_INTRINSIC_0("ttyname", posix_ttyname, V), +-- +2.5.1 + diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch new file mode 100644 index 000000000..2ea1ffda5 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/change-char-type-to-signed-char-in-macros.patch @@ -0,0 +1,218 @@ +slang: change char type to signed char in macros + +C language has 3 distinct char types: + char + unsigned char + signed char +A char has the same range of values as signed char on X86, +but same as unsigned char on ARM which made Slang's typecast() +and array_sort() unable to work for char value on ARM, since +Slang is assuming "char" as "signed char". + +Now we change "char" as "signed char" explicitly in +util/mkslarith2.sl, and use it to regenerate src/slarith2.inc + +Upstream-Status: Submitted +Signed-off-by: Roy.Li <rongqing.li@windriver.com> +--- + src/slarith2.inc | 72 ++++++++++++++++++++++++------------------------- + src/util/mkslarith2.sl | 2 - + 2 files changed, 37 insertions(+), 37 deletions(-) + +--- a/src/util/mkslarith2.sl ++++ b/src/util/mkslarith2.sl +@@ -1,7 +1,7 @@ + #!/usr/bin/env slsh + + private variable CTypes = +- ["char", "unsigned char", "short", "unsigned short", "int", "unsigned int", ++ ["signed char", "unsigned char", "short", "unsigned short", "int", "unsigned int", + "long", "unsigned long", "long long", "unsigned long long", + "float", "double", "long double"]; + private variable Is_Int_Type = +--- a/src/slarith2.inc ++++ b/src/slarith2.inc +@@ -1,43 +1,43 @@ + /* DO NOT EDIT -- this file was generated by src/util/mkslarith2.sl */ +-/* ------------ char ---------- */ +-DEFUN_1(copy_char_to_char,char,char) ++/* ------------ signed char ---------- */ ++DEFUN_1(copy_char_to_char,signed char,signed char) + #define char_to_char NULL + #define copy_char_to_uchar copy_char_to_char + #define char_to_uchar NULL +-DEFUN_1(copy_char_to_short,char,short) ++DEFUN_1(copy_char_to_short,signed char,short) + #define char_to_short NULL +-DEFUN_1(copy_char_to_ushort,char,unsigned short) ++DEFUN_1(copy_char_to_ushort,signed char,unsigned short) + #define char_to_ushort NULL +-DEFUN_1(copy_char_to_int,char,int) +-DEFUN_2(char_to_int,char,int,copy_char_to_int) +-DEFUN_1(copy_char_to_uint,char,unsigned int) +-DEFUN_2(char_to_uint,char,unsigned int,copy_char_to_uint) +-DEFUN_1(copy_char_to_long,char,long) +-DEFUN_2(char_to_long,char,long,copy_char_to_long) +-DEFUN_1(copy_char_to_ulong,char,unsigned long) +-DEFUN_2(char_to_ulong,char,unsigned long,copy_char_to_ulong) ++DEFUN_1(copy_char_to_int,signed char,int) ++DEFUN_2(char_to_int,signed char,int,copy_char_to_int) ++DEFUN_1(copy_char_to_uint,signed char,unsigned int) ++DEFUN_2(char_to_uint,signed char,unsigned int,copy_char_to_uint) ++DEFUN_1(copy_char_to_long,signed char,long) ++DEFUN_2(char_to_long,signed char,long,copy_char_to_long) ++DEFUN_1(copy_char_to_ulong,signed char,unsigned long) ++DEFUN_2(char_to_ulong,signed char,unsigned long,copy_char_to_ulong) + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_char_to_llong,char,long long) +-DEFUN_2(char_to_llong,char,long long,copy_char_to_llong) ++DEFUN_1(copy_char_to_llong,signed char,long long) ++DEFUN_2(char_to_llong,signed char,long long,copy_char_to_llong) + #endif /* defined(HAVE_LONG_LONG) */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_char_to_ullong,char,unsigned long long) +-DEFUN_2(char_to_ullong,char,unsigned long long,copy_char_to_ullong) ++DEFUN_1(copy_char_to_ullong,signed char,unsigned long long) ++DEFUN_2(char_to_ullong,signed char,unsigned long long,copy_char_to_ullong) + #endif /* defined(HAVE_LONG_LONG) */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_char_to_float,char,float) +-DEFUN_2(char_to_float,char,float,copy_char_to_float) ++DEFUN_1(copy_char_to_float,signed char,float) ++DEFUN_2(char_to_float,signed char,float,copy_char_to_float) + #endif /* SLANG_HAS_FLOAT */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_char_to_double,char,double) +-DEFUN_2(char_to_double,char,double,copy_char_to_double) ++DEFUN_1(copy_char_to_double,signed char,double) ++DEFUN_2(char_to_double,signed char,double,copy_char_to_double) + #endif /* SLANG_HAS_FLOAT */ + #if defined(HAVE_LONG_DOUBLE) +-DEFUN_1(copy_char_to_ldouble,char,long double) +-DEFUN_2(char_to_ldouble,char,long double,copy_char_to_ldouble) ++DEFUN_1(copy_char_to_ldouble,signed char,long double) ++DEFUN_2(char_to_ldouble,signed char,long double,copy_char_to_ldouble) + #endif /* defined(HAVE_LONG_DOUBLE) */ + #if SLANG_HAS_FLOAT +-TO_DOUBLE_FUN(char_to_one_double,char) ++TO_DOUBLE_FUN(char_to_one_double,signed char) + #endif + + /* ------------ unsigned char ---------- */ +@@ -82,7 +82,7 @@ TO_DOUBLE_FUN(uchar_to_one_double,unsign + #endif + + /* ------------ short ---------- */ +-DEFUN_1(copy_short_to_char,short,char) ++DEFUN_1(copy_short_to_char,short,signed char) + #define short_to_char NULL + DEFUN_1(copy_short_to_uchar,short,unsigned char) + #define short_to_uchar NULL +@@ -123,7 +123,7 @@ TO_DOUBLE_FUN(short_to_one_double,short) + #endif + + /* ------------ unsigned short ---------- */ +-DEFUN_1(copy_ushort_to_char,unsigned short,char) ++DEFUN_1(copy_ushort_to_char,unsigned short,signed char) + #define ushort_to_char NULL + DEFUN_1(copy_ushort_to_uchar,unsigned short,unsigned char) + #define ushort_to_uchar NULL +@@ -164,7 +164,7 @@ TO_DOUBLE_FUN(ushort_to_one_double,unsig + #endif + + /* ------------ int ---------- */ +-DEFUN_1(copy_int_to_char,int,char) ++DEFUN_1(copy_int_to_char,int,signed char) + #define int_to_char NULL + DEFUN_1(copy_int_to_uchar,int,unsigned char) + #define int_to_uchar NULL +@@ -205,7 +205,7 @@ TO_DOUBLE_FUN(int_to_one_double,int) + #endif + + /* ------------ unsigned int ---------- */ +-DEFUN_1(copy_uint_to_char,unsigned int,char) ++DEFUN_1(copy_uint_to_char,unsigned int,signed char) + #define uint_to_char NULL + DEFUN_1(copy_uint_to_uchar,unsigned int,unsigned char) + #define uint_to_uchar NULL +@@ -246,7 +246,7 @@ TO_DOUBLE_FUN(uint_to_one_double,unsigne + #endif + + /* ------------ long ---------- */ +-DEFUN_1(copy_long_to_char,long,char) ++DEFUN_1(copy_long_to_char,long,signed char) + #define long_to_char NULL + DEFUN_1(copy_long_to_uchar,long,unsigned char) + #define long_to_uchar NULL +@@ -287,7 +287,7 @@ TO_DOUBLE_FUN(long_to_one_double,long) + #endif + + /* ------------ unsigned long ---------- */ +-DEFUN_1(copy_ulong_to_char,unsigned long,char) ++DEFUN_1(copy_ulong_to_char,unsigned long,signed char) + #define ulong_to_char NULL + DEFUN_1(copy_ulong_to_uchar,unsigned long,unsigned char) + #define ulong_to_uchar NULL +@@ -329,7 +329,7 @@ TO_DOUBLE_FUN(ulong_to_one_double,unsign + + /* ------------ long long ---------- */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_llong_to_char,long long,char) ++DEFUN_1(copy_llong_to_char,long long,signed char) + #define llong_to_char NULL + DEFUN_1(copy_llong_to_uchar,long long,unsigned char) + #define llong_to_uchar NULL +@@ -372,7 +372,7 @@ TO_DOUBLE_FUN(llong_to_one_double,long l + + /* ------------ unsigned long long ---------- */ + #if defined(HAVE_LONG_LONG) +-DEFUN_1(copy_ullong_to_char,unsigned long long,char) ++DEFUN_1(copy_ullong_to_char,unsigned long long,signed char) + #define ullong_to_char NULL + DEFUN_1(copy_ullong_to_uchar,unsigned long long,unsigned char) + #define ullong_to_uchar NULL +@@ -415,7 +415,7 @@ TO_DOUBLE_FUN(ullong_to_one_double,unsig + + /* ------------ float ---------- */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_float_to_char,float,char) ++DEFUN_1(copy_float_to_char,float,signed char) + #define float_to_char NULL + DEFUN_1(copy_float_to_uchar,float,unsigned char) + #define float_to_uchar NULL +@@ -458,7 +458,7 @@ TO_DOUBLE_FUN(float_to_one_double,float) + + /* ------------ double ---------- */ + #if SLANG_HAS_FLOAT +-DEFUN_1(copy_double_to_char,double,char) ++DEFUN_1(copy_double_to_char,double,signed char) + #define double_to_char NULL + DEFUN_1(copy_double_to_uchar,double,unsigned char) + #define double_to_uchar NULL +@@ -501,7 +501,7 @@ TO_DOUBLE_FUN(double_to_one_double,doubl + + /* ------------ long double ---------- */ + #if defined(HAVE_LONG_DOUBLE) +-DEFUN_1(copy_ldouble_to_char,long double,char) ++DEFUN_1(copy_ldouble_to_char,long double,signed char) + #define ldouble_to_char NULL + DEFUN_1(copy_ldouble_to_uchar,long double,unsigned char) + #define ldouble_to_uchar NULL +@@ -545,7 +545,7 @@ TO_DOUBLE_FUN(ldouble_to_one_double,long + #if SLANG_HAS_FLOAT + static To_Double_Fun_Table_Type To_Double_Fun_Table [MAX_ARITHMETIC_TYPES] = + { +- {sizeof(char), char_to_one_double}, ++ {sizeof(signed char), char_to_one_double}, + {sizeof(unsigned char), uchar_to_one_double}, + {sizeof(short), short_to_one_double}, + {sizeof(unsigned short), ushort_to_one_double}, +@@ -583,7 +583,7 @@ static To_Double_Fun_Table_Type To_Doubl + + static Binary_Matrix_Type Binary_Matrix [MAX_ARITHMETIC_TYPES][MAX_ARITHMETIC_TYPES] = + { +- /* char */ ++ /* signed char */ + { + {(FVOID_STAR)copy_char_to_char, char_to_char}, + {(FVOID_STAR)copy_char_to_uchar, char_to_uchar}, diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch new file mode 100644 index 000000000..0c1553a66 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/fix-check-pcre.patch @@ -0,0 +1,108 @@ +fix the pcre existence checking + +when check if there is pcre, the configure file always check +the host dir. now we make it work by adding correct prefix for +cross-compile environment. + +When enable pcre-module, we see a QA warning because rpaths +hardcoded into the build, rpaths are not needed, so lets turn +this off. + +Upstream-Status: Inappropriate +Signed-off-by: Roy.Li <rongqing.li@windriver.com> +--- + configure | 60 ++++++------------------------------------------------------ + 1 files changed, 6 insertions(+), 54 deletions(-) + +diff --git a/configure b/configure +index f1586c3..d22814f 100755 +--- a/configure ++++ b/configure +@@ -6991,6 +6991,7 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; } + /usr/include/pcre,/usr/lib \ + /usr/pcre/include,/usr/pcre/lib \ + /usr/include,/usr/lib \ ++ /usr/include,/usr/lib64 \ + /opt/include/pcre,/opt/lib \ + /opt/pcre/include,/opt/pcre/lib \ + /opt/include,/opt/lib" +@@ -7021,14 +7022,14 @@ $as_echo_n "checking for the pcre library and header files ... " >&6; } + xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` + xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` + found=0 +- if test -r $xincdir/$xincfile ++ if test -r $PKG_CONFIG_SYSROOT_DIR/$xincdir/$xincfile + then + for E in $exts + do +- if test -r "$xlibdir/$xlibfile.$E" ++ if test -r "$PKG_CONFIG_SYSROOT_DIR/$xlibdir/$xlibfile.$E" + then +- jd_pcre_include_dir="$xincdir" +- jd_pcre_library_dir="$xlibdir" ++ jd_pcre_include_dir="$PKG_CONFIG_SYSROOT_DIR/$xincdir" ++ jd_pcre_library_dir="$PKG_CONFIG_SYSROOT_DIR/$xlibdir" + jd_with_pcre_library="yes" + found=1 + break +@@ -7054,56 +7055,7 @@ $as_echo "yes: $jd_pcre_library_dir and $jd_pcre_include_dir" >&6; } + then + PCRE_LIB="" + else +- +-if test "X$jd_pcre_library_dir" != "X" +-then +- if test "X$RPATH" = "X" +- then +- +-case "$host_os" in +- *linux*|*solaris* ) +- if test "X$GCC" = Xyes +- then +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-Wl,-R," +- else +- RPATH="-Wl,-R" +- fi +- else +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-R " +- else +- RPATH="-R" +- fi +- fi +- ;; +- *osf*|*openbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-rpath," +- else +- RPATH="-rpath " +- fi +- ;; +- *netbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-R" +- fi +- ;; +-esac +- +- if test "X$RPATH" != "X" +- then +- RPATH="$RPATH$jd_pcre_library_dir" +- fi +- else +- RPATH="$RPATH:$jd_pcre_library_dir" +- fi +-fi +- ++ RPATH="" + fi + + PCRE_INC=-I$jd_pcre_include_dir +-- +1.7.4.1 + diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch new file mode 100644 index 000000000..50cac9264 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/rpathfix.patch @@ -0,0 +1,70 @@ +Without this patch we see rpaths hardcoded into the build which results in QA +warnings. These rpaths are not needed so lets turn this off. + +Upstream-Status: Inappropriate +(but could be turned into a proper configure option) + +RP 2012/03/14 + +Index: slang-2.2.4/configure +=================================================================== +--- slang-2.2.4.orig/configure 2012-03-14 23:40:01.283560679 +0000 ++++ slang-2.2.4/configure 2012-03-14 23:41:18.023558900 +0000 +@@ -6081,56 +6081,7 @@ + ELF_CFLAGS="$ELF_CFLAGS $IEEE_CFLAGS" + CFLAGS="$CFLAGS $IEEE_CFLAGS" + +- +-if test "X$libdir" != "X" +-then +- if test "X$RPATH" = "X" +- then +- +-case "$host_os" in +- *linux*|*solaris* ) +- if test "X$GCC" = Xyes +- then +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-Wl,-R," +- else +- RPATH="-Wl,-R" +- fi +- else +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-R " +- else +- RPATH="-R" +- fi +- fi +- ;; +- *osf*|*openbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-rpath," +- else +- RPATH="-rpath " +- fi +- ;; +- *netbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-R" +- fi +- ;; +-esac +- +- if test "X$RPATH" != "X" +- then +- RPATH="$RPATH$libdir" +- fi +- else +- RPATH="$RPATH:$libdir" +- fi +-fi +- ++RPATH="" + + # The cast to long int works around a bug in the HP C Compiler + # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch new file mode 100644 index 000000000..958fe983c --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/slang-fix-the-iconv-existence-checking.patch @@ -0,0 +1,116 @@ +From 4588f4a0287787788eb86fb16f326cbaa7454e1d Mon Sep 17 00:00:00 2001 +From: Zheng Junling <zhengjunling@huawei.com> +Date: Mon, 16 Jun 2014 12:51:25 +0000 +Subject: [PATCH] slang: fix the iconv existence checking + +When checking whether there is iconv, the configure file always check +the host env. + +Now we make it working properly by adding correct prefix for cross- +compiling environment. + +When enabling iconv-module, we see a QA warning because rpaths hardcoded +into the build. And rpaths are not needed, so let's turn this off. + +This patch is generated by referencing the existing "fix-check-pcre" +patch. + +Upstream-Status: Inappropriate + +Signed-off-by: Zheng Junling <zhengjunling@huawei.com> +--- + configure | 60 ++++++------------------------------------------------------ + 1 file changed, 6 insertions(+), 54 deletions(-) + +diff --git a/configure b/configure +index 7a96256..91632f3 100755 +--- a/configure ++++ b/configure +@@ -7909,6 +7909,7 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; } + /usr/include/iconv,/usr/lib \ + /usr/iconv/include,/usr/iconv/lib \ + /usr/include,/usr/lib \ ++ /usr/include,/usr/lib64 \ + /opt/include/iconv,/opt/lib \ + /opt/iconv/include,/opt/iconv/lib \ + /opt/include,/opt/lib" +@@ -7939,14 +7940,14 @@ $as_echo_n "checking for the iconv library and header files ... " >&6; } + xincdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $1}'` + xlibdir=`echo $include_and_lib | tr ',' ' ' | awk '{print $2}'` + found=0 +- if test -r $xincdir/$xincfile ++ if test -r $PKG_CONFIG_SYSROOT_DIR/$xincdir/$xincfile + then + for E in $exts + do +- if test -r "$xlibdir/$xlibfile.$E" ++ if test -r "$PKG_CONFIG_SYSROOT_DIR/$xlibdir/$xlibfile.$E" + then +- jd_iconv_include_dir="$xincdir" +- jd_iconv_library_dir="$xlibdir" ++ jd_iconv_include_dir="$PKG_CONFIG_SYSROOT_DIR/$xincdir" ++ jd_iconv_library_dir="$PKG_CONFIG_SYSROOT_DIR/$xlibdir" + jd_with_iconv_library="yes" + found=1 + break +@@ -7972,56 +7973,7 @@ $as_echo "yes: $jd_iconv_library_dir and $jd_iconv_include_dir" >&6; } + then + ICONV_LIB="" + else +- +-if test "X$jd_iconv_library_dir" != "X" +-then +- if test "X$RPATH" = "X" +- then +- +-case "$host_os" in +- *linux*|*solaris* ) +- if test "X$GCC" = Xyes +- then +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-Wl,-R," +- else +- RPATH="-Wl,-R" +- fi +- else +- if test "X$ac_R_nospace" = "Xno" +- then +- RPATH="-R " +- else +- RPATH="-R" +- fi +- fi +- ;; +- *osf*|*openbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-rpath," +- else +- RPATH="-rpath " +- fi +- ;; +- *netbsd*) +- if test "X$GCC" = Xyes +- then +- RPATH="-Wl,-R" +- fi +- ;; +-esac +- +- if test "X$RPATH" != "X" +- then +- RPATH="$RPATH$jd_iconv_library_dir" +- fi +- else +- RPATH="$RPATH:$jd_iconv_library_dir" +- fi +-fi +- ++ RPATH="" + fi + + ICONV_INC=-I$jd_iconv_include_dir +-- +1.8.3.4 + diff --git a/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch new file mode 100644 index 000000000..420001b08 --- /dev/null +++ b/import-layers/yocto-poky/meta/recipes-extended/slang/slang/sprintf-bug-concerning-8-bit-characters.patch @@ -0,0 +1,42 @@ +Upstream-Status: Backport + +From 3a05d1a920140e9f2c72791c12f664213feb46df Mon Sep 17 00:00:00 2001 +From: Manfred Hanke <Manfred.Hanke@tngtech.com> +Date: Thu, 20 Jun 2013 10:24:12 +0200 +Subject: [PATCH] sprintf bug (concerning %c for 8-bit character in non-UTF8 + mode) fixed + +char *str points to SLuchar_Type utf8_buf[], which had too small scope + +src/test/strops.sl failed in the following environment: + - compiler: gcc (Debian 4.7.2-5) 4.7.2 + - CFLAGS: -g -O2 + - libc: GNU C Library (Debian EGLIBC 2.13-38) stable release version 2.13 + - kernel: 3.2.0-4-686-pae #1 SMP Debian 3.2.39-2 i686 GNU/Linux +--- + src/slstrops.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/slstrops.c b/src/slstrops.c +index ce6acb0..cbbbb01 100644 +--- a/src/slstrops.c ++++ b/src/slstrops.c +@@ -1884,6 +1884,7 @@ static char *SLdo_sprintf (char *fmt) /*{{{*/ + #endif + unsigned char uch; + int use_long = 0, use_alt_format = 0; ++ SLuchar_Type utf8_buf[SLUTF8_MAX_MBLEN+1]; + + while (1) + { +@@ -2071,7 +2072,6 @@ static char *SLdo_sprintf (char *fmt) /*{{{*/ + #endif + { + SLwchar_Type wc; +- SLuchar_Type utf8_buf[SLUTF8_MAX_MBLEN+1]; + + if (-1 == SLang_pop_wchar (&wc)) + return out; +-- +1.7.9.5 + |