CHANGES -- trio The changes listed without a name attributed to them were most likely done by Bjorn Reese and/or Daniel Stenberg. Version 1.10 - 2003/03/06 ------------------------- * Rearranged some include files to accommodate large file support (reported by Albert Chin-A-Young) * Added support for SunOS 4.1.x lack of strerror, tolower, and toupper (reported by Peter McCluskey). * Fixed pedantic compilation with TRIO_MINIMAL. * Jose Kahan Moved to avoid redefinition problems. * Fixed hex-float exponents (reported by Matthias Clasen). * Fixed handling of negative width and precision via paramters (reported by Jacob Navia). * Nigel Hall Fixed TRIO_VA_START for VMS. * Rune Enggaard Lausen Fixed compilation for Borland C++ Builder. * Fixed precision of hex-float numbers (reported by James Antill). * Fixed plus sign only to be added for signed numbers. * Fixed printing of integers with value and precision of zero (reported by James Antill). * Fixed %#.o to only print one zero if the value is zero (reported by James Antill). * Rewrote check for IEEE compilation option to remove dependency on additional scripts. * Mehdi Lavasani Makefile install target fixed to work with older install programs. * Collapsed the DECC, MSVC, HP-UX, and AIX code for trio_fpclassify_and_sign() with further preprocessing. Version 1.9 - 2002/10/13 ------------------------ * Fixed trio_fpclassify_and_signbit on AIX 3.2 * Added configure check for -ieee/-mieee compilation option for Alpha machines. * Craig Berry Fixed compilation on VMS. * Albert Chin-A-Young Fixed incorrect conditional expression in trio_isinf. * Fixed the warnings about uninitialized va_list in the printfv and scanfv family without the use of compiler specific pragmas (suggested by Ian Pilcher). * Fixed space flag for floating-point numbers (reported by Ian Main). Version 1.8 - 2002/07/10 ------------------------ * Fixed infinite loop in multibyte handling (reported by Gisli Ottarsson). * Added the customizable cprintf/cscanf family which enables to user to specify input and output stream functions (suggested by Florian Schulze). * Fixed trio_isinf by removing the HP-UX workaround, and instead making sure that the C99 macro will adhere to the trio return values (reported by Luke Dunstan). * Alexander Lukyanov Fixed boundary case for scanning and EOF. * Jacob Navia Enabled the L modifier for formatting. * Added TRIO_MINIMAL to build trio without the string functions. * Added the R modifier to print rounded floating-point numbers. * Added trio_to_long_double and long double scanning (the L modifier). * Added trio_locale_decimal_point, trio_locale_thousand_separator, trio_locale_grouping to overwrite locale settings. * Rewrote TrioWriteDouble to avoid temporary buffers and thus the danger of buffer overflows (for instance %.5000f). * Improved floating-point formatting accuracy. * Fixed formatting of non-decimal exponents. * Fixed thousand separator checking. * Fixed %f scanning to get a float and %lf to get a double. * Fixed WIN32 compilation (reported by Emmanuel Mogenet) * Fixed regression test cases to exclude disabled features. Version 1.7 - 2002/05/07 ------------------------ * Fixed trio_to_double to handle hex-floats properly. * Fixed printing of %a-format to be like %e, not like %g. * Fixed floating-point printing of values beyond the machine accuracy. * Fixed %f for printing with large precision. * Fixed the usage of C99 nan(), which caused a crash on OSF/1 (reported by Georg Bolz) * Joe Orton Fixed %p on 64-bit platforms. * Made trio compile with K&R compilers. * Emmanuel Mogenet Fixed bug in trio_asprintf. * Emmanuel Mogenet Various WIN32 fixes. * Joe Orton Fixed trio_isinf() on HP-UX, and added test cases. * Joe Orton Fixed non-portable use of $^ in Makefile. * Joe Orton Added autoconf. * Alexander Lukyanov Fixed a number of bugs in the scanning of EOF and the count specifier. * Richard Jinks Added trio_nzero * Fixed incorrect handling of return code from TrioReadChar (reported by Henrik Löf) * Fixed parsing of character class expressions. * Fixed trio_to_double which did not work with long fractions. * Fixed %f for printing of large numbers. * Fixed %#s to handle whitespaces as non-printable characters. * Added trio_isfinite, trio_signbit, and trio_fpclassify. * Added new test cases. Version 1.6 - 2002/01/13 ------------------------ * Added dynamic string functions. * Rewrote and extended documentation in JavaDoc (using Doxygen). * Moved and renamed strio functions to triostr. * Robert Collins Added definition for Cygwin. * Markus Henke Added long double workaround for the HP C/iX compiler. * Marc Verwerft Improved error handling for dynamically allocated strings. * John Fotheringham Made trionan compile on OpenVMS. * Added 'd' and 'D' as exponent letters when using TRIO_MICROSOFT. * Fixed uninitial memory read for the parameter modifiers. Version 1.5 - 2001/09/08 ------------------------ * Merged with libxml changes. * Moved NaN and Inf handling to separate file to enable reuse in other projects. * Igor Zlatkovic Fixed TrioGenerateNan for MSVC. * Fixed lots of preprocessor macros and internal data structure names. Version 1.4 - 2001/06/03 ------------------------ * Added hex-float (%a and %A) for scanning. * Added wide character arguments (%ls, %ws, %S, %lc, %wc, and %C) for both printf and scanf. * Added mutex callbacks for user-specified specifiers to enable applications to add thread-safety. These are registered with trio_register, where the namespace is set to either ":enter" to lock a mutex, or ":leave" to unlock a mutex. * Added equivalence class expressions for scanning. For example, %[[=a=]] scans for all letters in the same equivalence class as the letter 'a' as defined by the locale. * Changed character class expressions for scanning. The expressions must now be embedded withing an extra set of brackets, e.g. %[[:alpha:]]. This was done to adhere to the syntax of UNIX98 regular expressions. * Added the possibility to specify standard support (TRIO_C99 etc.) as compiler options. * Fixed conversion of hex-float in StrToDouble. * Fixed formatting of hex-float numbers. * Stan Boehm Fixed crash on QNX, which happend because some buffers on the stack were too big. * Fixed default precision for %f and %g (reported by Jose Ortiz) * Howard Kapustein Added the I8, I16, I32, and I64 modifiers. * Jose Ortiz Fixed rounding problem for %e. * Jose Ortiz Fixed various problems with the xlC and Sun C++ compilers. Version 1.3 - 2001/05/16 ------------------------ *
#/bin/sh
#
# rpm2lsm -- generate Linux Software Map file from RPM meta information
#
# Author:       Eric S. Raymond <esr@thyrsus.com>, 31 July 2002
# Project page: http://www.catb.org/~esr/
#
# Requires fmt(1), awk(1), and rpm(8).

while getopts a:m:k:p: c;
do
  case $c in
   'a') author=$OPTARG;;
   'm') maintainer=$OPTARG;;
   'k') keywords=$OPTARG;;
   'p') platforms=$OPTARG;;
   '?') echo "rpm2lsm: invalid switch specified - aborting."; exit 1;;
  esac
done
shift `expr $OPTIND - 1`

# If no RPM was given, look in the current directory and pick the last
# one in sort order.  That's likely to be the most recent.
if [ -z "$1" ]
then
	set -- *.rpm
	while [ "$2" ]
	do
		shift
	done
fi

# Mine out all the single-token fields we'll need
rpm=$1
set -- `rpm --queryformat="%{name} %{version} %{release}" -qp $rpm`
name=$1
version=$2
release=$3

# Extract and reformat the desciption
description=`rpm --queryformat="%{description}" -qp $rpm | fmt -w 65 | sed '2,$s/^/                /'`

# Who am I?
fullname=`cat /etc/passwd | awk -F : "/^${USER}/ "'{print $5}'`
fullname="${USER}@${HOSTNAME} ($fullname)"

if [ -z "$author" ]
then 
    if [ -f AUTHORS ]
    then
	author=`cat AUTHORS`
    else
	author=$fullname
    fi
fi

# Fill in keywords if present
if [ -n "$keywords" ]
then
    keywords="Keywords:       $keywords\n"
fi

# Default the maintainer field properly
if [ -z "$maintainer" ]
then
    maintainer=`rpm --queryformat="%{packager}" -qp $rpm`
    if [ "$maintainer" = "(none)" ]
    then
        maintainer=$author
    fi
fi

# The date
date=`date '+%Y-%m-%d'`

cat >/usr/tmp/rpm2lsm.$$ <<EOF
Begin3
Title:		%{name}
Version:	%{version}
Entered-date:	${date}
Description:	${description}
${keywords}Author: 	${author}
Maintained-by:	${maintainer}
Primary-site:	%{url}
EOF

# File patterns that we ship 
tarballs="${name}-${version}.tar.gz ${name}-${version}.tgz"
rpms=${name}-${version}-${release}.*.rpm

trap "rm -f /usr/tmp/rpm2lsm.$$"  0 2 15
for file in $tarballs $rpms
do
    if [ -f $file ]
    then
        set -- `du $file`; size=$1
        echo "		${size}	${file}" >>/usr/tmp/rpm2lsm.$$
    fi
done

cat >>/usr/tmp/rpm2lsm.$$ <<EOF
Platforms:      ${platforms:-All}
Copying-policy:	%{license}
End
EOF

format=`cat /usr/tmp/rpm2lsm.$$`
rpm --queryformat="$format" -qp $rpm
tfcat * Changed the meaning of the max argument of StrAppendMax to be consistant with StrFormatAppendMax. Now it is the maximal size of the entire target buffer, not just the appended size. This makes it easier to avoid buffer overflows (requested by Tero) Version 0.14 - 1999/05/16 ------------------------- * Added size_t support (just waiting for a C99 compliant compiler to add ptrdiff_t and intmax_t) * Rewrote TrioOutStreamDouble so it does not use the libc sprintf to emulate floating-point anylonger. * Fixed width, precision, and adjustment for numbers and doubles. Version 0.13 - 1999/05/06 ------------------------- * Fixed zero padding for %d. Now %d will only zero pad if explicitly requested to do so with the 0 flag (reported by Tero). * Fixed an incorrect while() condition in TrioGetString (reported by Tero). Version 0.12 - 1999/04/19 ------------------------- * Fixed incorrect zero padding of pointers * Added StrHash with STRIO_HASH_PLAIN * Added StrFormatDateMax Version 0.11 - 1999/03/25 ------------------------- * Made it compile under cygwin * Fixed a bug were TrioPreprocess would return an error if no formatting chars were found (reported by Tero). Version - 1999/03/19 -------------------- * Added trio_strerror and TRIO_ERROR_NAME. * Changed the error codes to be positive (as errno) * Fixed two reads of uninitialized memory reported by Purify * Added binary specifiers 'b' and 'B' (like SCO.) ThousandSeparator can be used to separate nibbles (4 bit) * Renamed all Internal* functions to Trio*, which seems like a better namespace (even though it is of no practical interest because these functions are not visible beyond the scope of this file.) Version - 1999/03/12 -------------------- * Added hex-float format for StrToDouble * Double references and gaps in the arguments are not allowed (for the %n$ format) and in both cases an error code is returned. * Added StrToDouble (and StrToFloat) Version - 1999/03/08 -------------------- * Added InStream and OutStream to the trio_T structure. * Started work on TrioScan. * Return values for errors changed. Two macros to unpack the error code has been added to the header. * Shortshort (hh) flag added. * %#s also quotes the quote-char now. * Removed the 'errorInFormat' boolean, which isn't used anymore after the functions bail out with an error instead. Version - 1999/03/04 -------------------- * More than MAX_PARAMETERS parametes will now cause the TrioPreprocess() function to return error. * Unknown flags and/or specifiers cause errors too. * Added trio_snprintfcat and trio_vsnprintfcat and the defined name StrFormatAppendMax. They append a formatted string to the end of a string. * Define MAX_PARAMETERS to 128 at all times instead of using NL_ARGMAX when that exists. * Added platform fixes for Amiga as suggested by Tero Jänkä Version - 1999/01/31 -------------------- * vaprintf did add a zero byte even when it had failed. * Cleaned up the code for locale handling and thousand separator * Added trio_aprintf() and trio_vaprintf(). They return an allocated string. * Added thousands separator for numbers * Added floating point support for *printf Version - 1998/10/20 -------------------- * StrMatchCase() called StrMatch() instead of itself recursively * Rewrote the implementation of *printf and *scanf and put all the code in this file. Extended qualifiers and qualifiers from other standards were added. * Added StrSpanFunction, StrToLong, and StrToUnsignedLong Version - 1998/05/23 -------------------- * Made the StrEqual* functions resistant to NULL pointers * Turns out strdup() is no standard at all, and some platforms (I seem to recall HP-UX) has problems with it. Made our own StrDuplicate() instead. * Added StrFormat() and StrFormatMax() to serve as sprintf() and snprintf() respectively.