Package: cxref
Version: 1.6-5
Severity: normal
Tags: patch

Hello,

There are several problems with the cxref-cpp wrapper:

* warning messages should be sent to stderr;

* version verification fails with different messages from gcc 
  (e.g. with a localized version);

* arguments containing spaces are not correctly passed to the real
  cxref-cpp.


Try for example : 
    
$ true > foo.c
$ export LANG=fr_FR
$ cxref -DX='"A B"' foo.c
(null):0: cxref: syntax error, unexpected ':', expecting '('

The previous 10, current and next 10 symbols are:
 -1 | 258 :       IDENTIFIER : Warning
  0 |  58 :              ':' : :
  1 | 258 :       IDENTIFIER : cxref
  2 |  45 :              '-' : -
  3 | 258 :       IDENTIFIER : cpp
  4 | 258 :       IDENTIFIER : needs
  5 | 258 :       IDENTIFIER : to
  6 | 258 :       IDENTIFIER : be
  7 | 258 :       IDENTIFIER : reconfigured
  8 | 258 :       IDENTIFIER : against
  9 | 258 :       IDENTIFIER : your
 10 | 258 :       IDENTIFIER : latest

B":0: unterminated string or character constant
B":0: possible real start of unterminated constant
cxref-cpp.upstream: B": No such file or directory
cxref: The preprocessor exited abnormally on 'foo.c'


I suggests the following replacement for cxref-cpp:

========================================================================
#!/bin/sh

set -e

DEF=/etc/cxref/cxref-cpp.defines
TMP=`tempfile -p cxref -m 600`

(
    LC_ALL=C
    export LC_ALL
    /usr/bin/cxref-cpp-configure -o "$TMP"
)

. /etc/cxref/config

CCD=""
CCDF=""

if ! cmp -s "$DEF" "$TMP" ; then

        echo "Warning: cxref-cpp needs to be reconfigured against your latest 
gcc/cpp" >&2
        echo "   Please run 'dpkg-reconfigure cxref' as root." >&2

        if [ "$AUTOCONF" = "true" ] ; then
            #
            # Assumes that only the *last* -cxref-cpp-defines is taken into 
account
            # by cxref-cpp.upstream
            #
            CCD=-cxref-cpp-defines 
            CCDF=$TMP
        else
            exit 1
        fi
fi

exec /usr/bin/cxref-cpp.upstream "$@" "$CCD" "$CCDF"
========================================================================



-- System Information:
Debian Release: 3.1
  APT prefers testing
  APT policy: (500, 'testing'), (50, 'unstable')
Architecture: i386 (i686)
Kernel: Linux 2.6.8-1-k7
Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15)

Versions of packages cxref depends on:
ii  debconf [debconf-2.0]       1.4.30.11    Debian configuration management sy
ii  gcc                         4:3.3.5-1    The GNU C compiler
ii  libc6                       2.3.2.ds1-20 GNU C Library: Shared libraries an

-- debconf information:
* cxref/cxref-cpp-autoconf:

-- 
Arnaud


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to