apparent bug in 'aspell-0.60.4/modules/filter/nroff.cpp' file

Sergei Steshenko <[email protected]>
Newsgroups gmane.comp.gnu.aspell.user
Message-ID <[email protected]>
Hello All,

I am building 'aspell' in the framework of my project (see signature).

Recent update to SUSE 10.2 and new C++ compiler exposed what looks like
a bug to me, though my C++ knowledge is superficial.

'make' fails with these messages:

"
(cd .libs && rm -f context-filter.la && ln -s ../context-filter.la context-filter.la)
depbase=`echo modules/filter/nroff.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`; \
	if /bin/sh ./libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I. -I./gen  -I./gen
-I./common -I./interfaces/cc/ -I./modules/speller/default/
-DLOCALEDIR=\"/maxtor5/sergei/AppsFromScratchWD/install/aspell-0.60.4/share/locale\"
-I/maxtor5/sergei/AppsFromScratchWD/install/ncurses-5.5/include  -g -O2 -fno-exceptions -MT
modules/filter/nroff.lo -MD -MP -MF "$depbase.Tpo" -c -o modules/filter/nroff.lo
modules/filter/nroff.cpp; \
	then mv -f "$depbase.Tpo" "$depbase.Plo"; else rm -f "$depbase.Tpo"; exit 1; fi
 g++ -DHAVE_CONFIG_H -I. -I. -I./gen -I./gen -I./common -I./interfaces/cc/
-I./modules/speller/default/
-DLOCALEDIR=\"/maxtor5/sergei/AppsFromScratchWD/install/aspell-0.60.4/share/locale\"
-I/maxtor5/sergei/AppsFromScratchWD/install/ncurses-5.5/include -g -O2 -fno-exceptions -MT
modules/filter/nroff.lo -MD -MP -MF modules/filter/.deps/nroff.Tpo -c modules/filter/nroff.cpp 
-fPIC -DPIC -o modules/filter/.libs/nroff.o
modules/filter/nroff.cpp:76: error: extra qualification '<unnamed>::NroffFilter::' on member
'process_char'
make[1]: *** [modules/filter/nroff.lo] Error 1
make[1]: Leaving directory `/maxtor5/sergei/AppsFromScratchWD/build/aspell-0.60.4'
make: *** [all-recursive] Error 1
".

Here is the context:

    34	  class NroffFilter : public IndividualFilter
    35	  {
    36	  private:
    37	    enum filter_state {
    38	      initial,
    39	      escape,
    40	      request,
    41	      font_switch,
    42	      size_switch,
    43	      skip_char,
    44	      skip_digit,
    45	      skip_space_before_ident,
    46	      skip_ident,
    47	      skip_cond,
    48	      skip_leading_ws,
    49	      argument,
    50	      register_reference,
    51	      gnu_register_name      
    52	    } state;
    53	    bool newline;      // Newline has just been seen.
    54	    size_t skip_chars; // Number of characters to skip
    55	    char req_name[2];  // Name of the recent nroff request
    56	    int pos;           // position of the next char in req_name
    57	    bool in_request;   // are we within a request?
    58	
    59	    // Return true if we should ignore argument to the current request.
    60	    bool inline ignore_request_argument ()
    61	    {
    62	      static char ignore_req_tab[][3] = {
    63		"ds",
    64		"de",
    65		"nr",
    66		"do",
    67		"so"
    68	      };
    69	      for (int i = 0; i < sizeof(ignore_req_tab)/sizeof(ignore_req_tab[0]);
    70		   i++)
    71		if (memcmp(ignore_req_tab[i], req_name, 2) == 0)
    72		  return true;
    73	      return false;
    74	    }
    75	    
    76	    bool NroffFilter::process_char (FilterChar::Chr c);
    77	      
    78	  public:
    79	
    80	    PosibErr<bool> setup(Config *);
    81	    void reset();
    82	    void process(FilterChar * &, FilterChar * &);
    83	  };

I believe that class member should be declared without namespace qualifiers,
at least, if my code replaces

    76	    bool NroffFilter::process_char (FilterChar::Chr c);

with

    76	    bool process_char (FilterChar::Chr c);

the whole thing compiles.

This should probably be filed like a bug report, but I got confused trying to figure
out how/where to do this.

Please fix this anyway.

Thanks,
  Sergei.

P.S. Info on my system:

"
[164] 16:40 sergei@amdam2:/maxtor5/sergei/AppsFromScratchWD> uname -a
Linux amdam2 2.6.18.2-34-default #1 SMP Mon Nov 27 11:46:27 UTC 2006 i686 athlon i386 GNU/Linux
[165] 16:40 sergei@amdam2:/maxtor5/sergei/AppsFromScratchWD> gcc -v
Using built-in specs.
Target: i586-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr --with-local-prefix=/usr/local
--infodir=/usr/share/info --mandir=/usr/share/man --libdir=/usr/lib --libexecdir=/usr/lib
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada --enable-checking=release
--with-gxx-include-dir=/usr/include/c++/4.1.2 --enable-ssp --disable-libssp --disable-libgcj
--with-slibdir=/lib --with-system-zlib --enable-shared --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --program-suffix=-4.1 --enable-version-specific-runtime-libs
--without-system-libunwind --with-cpu=generic --host=i586-suse-linux
Thread model: posix
gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)
".

Applications From Scratch: http://appsfromscratch.berlios.de/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.