From 7a1513b144fa8b8bcc80da32a118aa4aa8e45858 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Sat, 12 Feb 2011 15:46:37 -0500 Subject: [PATCH] PR3823: use our own autosprintf() * configure.ac, Makefile.am: Forget about libasprintf. * main.cxx, session.cxx, session.h: Likewise. * util.h, util.cxx: Define workalike autosprintf(), with a fresh new look, and with no added memory leaks! WOW! --- Makefile.am | 2 +- Makefile.in | 5 +- configure | 520 --------------------- configure.ac | 1 - doc/Makefile.in | 1 - doc/SystemTap_Tapset_Reference/Makefile.in | 1 - doc/beginners/Makefile.in | 1 - grapher/Makefile.in | 1 - main.cxx | 2 - session.cxx | 1 - session.h | 1 - util.cxx | 18 +- util.h | 2 + 13 files changed, 22 insertions(+), 534 deletions(-) diff --git a/Makefile.am b/Makefile.am index fcd833c65..bd4ad98e8 100644 --- a/Makefile.am +++ b/Makefile.am @@ -55,7 +55,7 @@ stap_SOURCES = main.cxx session.cxx \ tapset-utrace.cxx task_finder.cxx dwflpp.cxx rpm_finder.cxx \ setupdwfl.cxx csclient.cxx remote.cxx noinst_HEADERS = sdt_types.h -stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ @LIBASPRINTF@ @LIBINTL@ +stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ @LIBINTL@ stap_DEPENDENCIES = endif diff --git a/Makefile.in b/Makefile.in index a8df50c9a..51a49a6d7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -270,7 +270,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ @@ -415,8 +414,8 @@ oldinclude_HEADERS = includes/sys/sdt.h includes/sys/sdt-config.h @BUILD_TRANSLATOR_TRUE@ $(am__append_13) @BUILD_TRANSLATOR_TRUE@noinst_HEADERS = sdt_types.h @BUILD_TRANSLATOR_TRUE@stap_LDADD = @stap_LIBS@ @sqlite3_LIBS@ \ -@BUILD_TRANSLATOR_TRUE@ @LIBASPRINTF@ @LIBINTL@ \ -@BUILD_TRANSLATOR_TRUE@ $(am__append_12) $(am__append_17) +@BUILD_TRANSLATOR_TRUE@ @LIBINTL@ $(am__append_12) \ +@BUILD_TRANSLATOR_TRUE@ $(am__append_17) @BUILD_TRANSLATOR_TRUE@stap_DEPENDENCIES = $(am__append_23) # Arrange for git_version.h to be regenerated at every "make". diff --git a/configure b/configure index 38e2877c9..ee20fa1d4 100755 --- a/configure +++ b/configure @@ -600,9 +600,6 @@ am__EXEEXT_TRUE LTLIBOBJS LIBOBJS subdirs -LIBASPRINTF_PREFIX -LTLIBASPRINTF -LIBASPRINTF LOCALEDIR support_section_question DATE @@ -798,7 +795,6 @@ enable_server enable_grapher with_rpm with_elfutils -with_libasprintf_prefix ' ac_precious_vars='build_alias host_alias @@ -1482,8 +1478,6 @@ Optional Packages: --with-rpm query rpm database for missing debuginfos --with-elfutils=DIRECTORY find elfutils source code in DIRECTORY - --with-libasprintf-prefix[=DIR] search for libasprintf in DIR/include and DIR/lib - --without-libasprintf-prefix don't search for libasprintf in includedir and libdir Some influential environment variables: CC C compiler command @@ -10569,520 +10563,6 @@ fi LOCALEDIR="$localedir" - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libasprintf" >&5 -$as_echo_n "checking how to link with libasprintf... " >&6; } -if test "${ac_cv_libasprintf_libs+set}" = set; then : - $as_echo_n "(cached) " >&6 -else - - - - - - - - - use_additional=yes - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - -# Check whether --with-libasprintf-prefix was given. -if test "${with_libasprintf_prefix+set}" = set; then : - withval=$with_libasprintf_prefix; - if test "X$withval" = "Xno"; then - use_additional=no - else - if test "X$withval" = "X"; then - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - - eval additional_includedir=\"$includedir\" - eval additional_libdir=\"$libdir\" - - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - else - additional_includedir="$withval/include" - additional_libdir="$withval/$acl_libdirstem" - if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then - additional_libdir="$withval/$acl_libdirstem2" - fi - fi - fi - -fi - - LIBASPRINTF= - LTLIBASPRINTF= - INCASPRINTF= - LIBASPRINTF_PREFIX= - HAVE_LIBASPRINTF= - rpathdirs= - ltrpathdirs= - names_already_handled= - names_next_round='asprintf ' - while test -n "$names_next_round"; do - names_this_round="$names_next_round" - names_next_round= - for name in $names_this_round; do - already_handled= - for n in $names_already_handled; do - if test "$n" = "$name"; then - already_handled=yes - break - fi - done - if test -z "$already_handled"; then - names_already_handled="$names_already_handled $name" - uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` - eval value=\"\$HAVE_LIB$uppername\" - if test -n "$value"; then - if test "$value" = yes; then - eval value=\"\$LIB$uppername\" - test -z "$value" || LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$value" - eval value=\"\$LTLIB$uppername\" - test -z "$value" || LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }$value" - else - : - fi - else - found_dir= - found_la= - found_so= - found_a= - eval libname=\"$acl_libname_spec\" # typically: libname=lib$name - if test -n "$acl_shlibext"; then - shrext=".$acl_shlibext" # typically: shrext=.so - else - shrext= - fi - if test $use_additional = yes; then - dir="$additional_libdir" - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - fi - if test "X$found_dir" = "X"; then - for x in $LDFLAGS $LTLIBASPRINTF; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - case "$x" in - -L*) - dir=`echo "X$x" | sed -e 's/^X-L//'` - if test -n "$acl_shlibext"; then - if test -f "$dir/$libname$shrext"; then - found_dir="$dir" - found_so="$dir/$libname$shrext" - else - if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then - ver=`(cd "$dir" && \ - for f in "$libname$shrext".*; do echo "$f"; done \ - | sed -e "s,^$libname$shrext\\\\.,," \ - | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ - | sed 1q ) 2>/dev/null` - if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then - found_dir="$dir" - found_so="$dir/$libname$shrext.$ver" - fi - else - eval library_names=\"$acl_library_names_spec\" - for f in $library_names; do - if test -f "$dir/$f"; then - found_dir="$dir" - found_so="$dir/$f" - break - fi - done - fi - fi - fi - if test "X$found_dir" = "X"; then - if test -f "$dir/$libname.$acl_libext"; then - found_dir="$dir" - found_a="$dir/$libname.$acl_libext" - fi - fi - if test "X$found_dir" != "X"; then - if test -f "$dir/$libname.la"; then - found_la="$dir/$libname.la" - fi - fi - ;; - esac - if test "X$found_dir" != "X"; then - break - fi - done - fi - if test "X$found_dir" != "X"; then - LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }-L$found_dir -l$name" - if test "X$found_so" != "X"; then - if test "$enable_rpath" = no \ - || test "X$found_dir" = "X/usr/$acl_libdirstem" \ - || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$found_so" - else - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $found_dir" - fi - if test "$acl_hardcode_direct" = yes; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$found_so" - else - if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$found_so" - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $found_dir" - fi - else - haveit= - for x in $LDFLAGS $LIBASPRINTF; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$found_dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }-L$found_dir" - fi - if test "$acl_hardcode_minus_L" != no; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$found_so" - else - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }-l$name" - fi - fi - fi - fi - else - if test "X$found_a" != "X"; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$found_a" - else - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }-L$found_dir -l$name" - fi - fi - additional_includedir= - case "$found_dir" in - */$acl_libdirstem | */$acl_libdirstem/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` - if test "$name" = 'asprintf'; then - LIBASPRINTF_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - */$acl_libdirstem2 | */$acl_libdirstem2/) - basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` - if test "$name" = 'asprintf'; then - LIBASPRINTF_PREFIX="$basedir" - fi - additional_includedir="$basedir/include" - ;; - esac - if test "X$additional_includedir" != "X"; then - if test "X$additional_includedir" != "X/usr/include"; then - haveit= - if test "X$additional_includedir" = "X/usr/local/include"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - for x in $CPPFLAGS $INCASPRINTF; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-I$additional_includedir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_includedir"; then - INCASPRINTF="${INCASPRINTF}${INCASPRINTF:+ }-I$additional_includedir" - fi - fi - fi - fi - fi - if test -n "$found_la"; then - save_libdir="$libdir" - case "$found_la" in - */* | *\\*) . "$found_la" ;; - *) . "./$found_la" ;; - esac - libdir="$save_libdir" - for dep in $dependency_libs; do - case "$dep" in - -L*) - additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` - if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \ - && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then - haveit= - if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \ - || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then - if test -n "$GCC"; then - case $host_os in - linux* | gnu* | k*bsd*-gnu) haveit=yes;; - esac - fi - fi - if test -z "$haveit"; then - haveit= - for x in $LDFLAGS $LIBASPRINTF; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }-L$additional_libdir" - fi - fi - haveit= - for x in $LDFLAGS $LTLIBASPRINTF; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X-L$additional_libdir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - if test -d "$additional_libdir"; then - LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }-L$additional_libdir" - fi - fi - fi - fi - ;; - -R*) - dir=`echo "X$dep" | sed -e 's/^X-R//'` - if test "$enable_rpath" != no; then - haveit= - for x in $rpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - rpathdirs="$rpathdirs $dir" - fi - haveit= - for x in $ltrpathdirs; do - if test "X$x" = "X$dir"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - ltrpathdirs="$ltrpathdirs $dir" - fi - fi - ;; - -l*) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` - ;; - *.la) - names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` - ;; - *) - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$dep" - LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }$dep" - ;; - esac - done - fi - else - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }-l$name" - LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }-l$name" - fi - fi - fi - done - done - if test "X$rpathdirs" != "X"; then - if test -n "$acl_hardcode_libdir_separator"; then - alldirs= - for found_dir in $rpathdirs; do - alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" - done - acl_save_libdir="$libdir" - libdir="$alldirs" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$flag" - else - for found_dir in $rpathdirs; do - acl_save_libdir="$libdir" - libdir="$found_dir" - eval flag=\"$acl_hardcode_libdir_flag_spec\" - libdir="$acl_save_libdir" - LIBASPRINTF="${LIBASPRINTF}${LIBASPRINTF:+ }$flag" - done - fi - fi - if test "X$ltrpathdirs" != "X"; then - for found_dir in $ltrpathdirs; do - LTLIBASPRINTF="${LTLIBASPRINTF}${LTLIBASPRINTF:+ }-R$found_dir" - done - fi - - - - - - - ac_cv_libasprintf_libs="$LIBASPRINTF" - ac_cv_libasprintf_ltlibs="$LTLIBASPRINTF" - ac_cv_libasprintf_cppflags="$INCASPRINTF" - ac_cv_libasprintf_prefix="$LIBASPRINTF_PREFIX" - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_libasprintf_libs" >&5 -$as_echo "$ac_cv_libasprintf_libs" >&6; } - LIBASPRINTF="$ac_cv_libasprintf_libs" - LTLIBASPRINTF="$ac_cv_libasprintf_ltlibs" - INCASPRINTF="$ac_cv_libasprintf_cppflags" - LIBASPRINTF_PREFIX="$ac_cv_libasprintf_prefix" - - for element in $INCASPRINTF; do - haveit= - for x in $CPPFLAGS; do - - acl_save_prefix="$prefix" - prefix="$acl_final_prefix" - acl_save_exec_prefix="$exec_prefix" - exec_prefix="$acl_final_exec_prefix" - eval x=\"$x\" - exec_prefix="$acl_save_exec_prefix" - prefix="$acl_save_prefix" - - if test "X$x" = "X$element"; then - haveit=yes - break - fi - done - if test -z "$haveit"; then - CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" - fi - done - - - - - HAVE_LIBASPRINTF=yes - - - - stap_prefix=$prefix test "$stap_prefix" = NONE && stap_prefix=$ac_default_prefix diff --git a/configure.ac b/configure.ac index 9ee08fb90..4c8c92721 100644 --- a/configure.ac +++ b/configure.ac @@ -575,7 +575,6 @@ dnl Formerly: Don't use this directly (when not given it is set to NONE). dnl Currently: inline autoconf's later defaulting AC_SUBST(LOCALEDIR, "$localedir") -AC_LIB_LINKFLAGS([asprintf]) stap_prefix=$prefix test "$stap_prefix" = NONE && stap_prefix=$ac_default_prefix diff --git a/doc/Makefile.in b/doc/Makefile.in index 89b9ebf4f..eef81453e 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -105,7 +105,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ diff --git a/doc/SystemTap_Tapset_Reference/Makefile.in b/doc/SystemTap_Tapset_Reference/Makefile.in index 9a982c2c8..ac9ecf59b 100644 --- a/doc/SystemTap_Tapset_Reference/Makefile.in +++ b/doc/SystemTap_Tapset_Reference/Makefile.in @@ -113,7 +113,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ diff --git a/doc/beginners/Makefile.in b/doc/beginners/Makefile.in index 9f6d5be56..2d5f3494e 100644 --- a/doc/beginners/Makefile.in +++ b/doc/beginners/Makefile.in @@ -97,7 +97,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ diff --git a/grapher/Makefile.in b/grapher/Makefile.in index 68d534243..1819d4221 100644 --- a/grapher/Makefile.in +++ b/grapher/Makefile.in @@ -155,7 +155,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INTLLIBS = @INTLLIBS@ -INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ LDFLAGS = @LDFLAGS@ LIBICONV = @LIBICONV@ LIBINTL = @LIBINTL@ diff --git a/main.cxx b/main.cxx index 8bf3e84ee..1a65b3ddc 100644 --- a/main.cxx +++ b/main.cxx @@ -26,7 +26,6 @@ #include #include -#include "autosprintf.h" #include "stap-probe.h" @@ -45,7 +44,6 @@ extern "C" { } using namespace std; -using namespace gnu; static void uniq_list(list& l) diff --git a/session.cxx b/session.cxx index 8a0a4e4bb..8608dfe4d 100644 --- a/session.cxx +++ b/session.cxx @@ -41,7 +41,6 @@ extern "C" { #include using namespace std; -using namespace gnu; /* getopt variables */ extern int optind; diff --git a/session.h b/session.h index 0cde4595d..82f0a4fcd 100644 --- a/session.h +++ b/session.h @@ -12,7 +12,6 @@ #include "config.h" #include #include -#include "autosprintf.h" #include #include diff --git a/util.cxx b/util.cxx index 2679f7a86..1902c3d34 100644 --- a/util.cxx +++ b/util.cxx @@ -1,5 +1,5 @@ // Copyright (C) Andrew Tridgell 2002 (original file) -// Copyright (C) 2006-2010 Red Hat Inc. (systemtap changes) +// Copyright (C) 2006-2011 Red Hat Inc. (systemtap changes) // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License as @@ -38,6 +38,7 @@ extern "C" { #include #include #include +#include } using namespace std; @@ -716,4 +717,19 @@ normalize_machine(const string& machine) } +std::string autosprintf(const char* format, ...) +{ + va_list args; + char *str; + va_start (args, format); + int rc = vasprintf (&str, format, args); + if (rc < 0) + throw runtime_error ("autosprintf/vasprintf error " + lex_cast(rc)); + string s = str; + va_end (args); + free (str); + return s; /* by copy */ +} + + /* vim: set sw=2 ts=8 cino=>4,n-2,{2,^-2,t0,(0,u0,w1,M1 : */ diff --git a/util.h b/util.h index fa5fe7426..6af094424 100644 --- a/util.h +++ b/util.h @@ -37,6 +37,8 @@ void assert_regexp_match (const std::string& name, const std::string& value, con int regexp_match (const std::string& value, const std::string& re, std::vector& matches); bool contains_glob_chars (const std::string &str); std::string normalize_machine(const std::string& machine); +std::string autosprintf(const char* format, ...); + // stringification generics -- 2.43.5