On Wed, Jun 16, 2004 at 03:49:18AM -0500, Nikolai Nezlobin wrote: > Dear All, Hello Nikolai, > This is the short version of the code that produces the isalnum error. The > files (agstring.h, CType.h, main.cc, makefile, makefile.common) and two > error messages (for the short code and for the whole project) are below. > > All files, except for makefile.common, were in /mnt/hdb1/Sour/CType. The > line top=/mnt/hdb1/Sour in makefile reflects this. You will need to change > the top= if you try to compile the code. > makefile.common was kept one level upper (in /mnt/hdb1/Sour) The code you've posted works for me (albeit it would've been probably easier/better if you just had attached a tarball so that one wouldn't need to fiddle with the (badly formatted) "code text"). It did compile with GCC 3.2.3 and GCC 3.4 (both directly downloaded from a GNU mirror; i.e. no additional patches) and Redhat's GCC 2.96 on RH7.3 (installed from a RPM). Either your distribution (it seems you're running a Slackware system and I don't have any experience/knowledge about Slackware) has added a few patches and thereby unfortunately some bugs creeped in OR (what I suspect) something else gets in the way before the right header is included (you don't have by chance a file named "ctype.h" lying around somewhere in your source dir?). OR it's something completely different... You can just run your code trough the C pre processor: g++ -E main.cc > main.ii Then, have a look at the main.ii file. Does it contain references to /usr/include/ctype.h? E.g: # 1 "/usr/include/ctype.h" 1 3 If it does, is there some code which reads extern int isalnum (int) throw (); ??? It should be there. Usually. ;-) Maybe you can try upgrading your compiler? I mean, GCC 3.2.3 is already a bit dated. -- claudio