HDTenEightyP/NetNews huggingface dataset:
From: drizzt@spock.uucp (Neela Jacques)
Subject: Re: Program to convert .EXE to a "C" source file?  I really need one!!
Organization: Choate Rosemary Hall
Date: Wed, 6 Jan 1993 00:54:40 GMT

In article <1993Jan4.150159.6162@cs.utwente.nl> ahoekstr@cs.utwente.nl (Andre D. Hoekstra) writes:
>In article <1993Jan4.022241.4493@pony.Ingres.COM> mikes@Ingres.COM (Mike Schilling) writes:
>>From article <1993Jan2.203527.27050@news2.cis.umn.edu>, by dutc0006@student.tc.umn.edu ():
>>> In article <1993Jan1.225604.964@blurt.oswego.edu> ch_ind05@blurt.oswego.edu (Greg Fuller (SUNY Oswego, Oswego New York)) writes:
>>>>Hello. 
>>>>	I am looking for a program that will take a .EXE or .COM file and
>>>>convert it into a "C" source file.  I saw one on one of the FTP sites today,
>>> [Stuff deleted]
>>> 	I am looking for a program of that nature too.  If someone knows 
>>> where one can be FTP'd I would appreciate E-Mail telling me.  
>>> 				Thanks,
>>> 				dutc0006@student.tc.umn.edu			
>>> 
>>I'd prefer a program that generates the RCS or SCCS archives the program was 
>>developed in, plus a makefile.  Architectural and design documents would be 
>>nice too.
>Have you seen that tool that compiles all this output into the new version
>of the package? I once saw someone use a few commands to decompile
>WordPerfect 2.0 and bring it in successive stages to WP 5.1!!
>(I believe this was called reveng.com (reverse engineering) and upgrade.exe?)
>
>Andre++
>-- 
>There is no reason for any individual to have a computer in    | Andre Hoekstra
>their home. (Ken Olson, Ex-President Digital Equipment, 1977)  | Enschede -- NL


What's the name of this news group?








Newsgroups: comp.lang.c
From: rene@hamel.uucp (Rene Mueller)
Subject: Re: why strcpy(a,b) == a? (was Re: definition of strncpy stupid?)
Organization: Free University of Berlin, Germany
Date: Wed, 6 Jan 1993 22:16:54 GMT

Each strxxx-function returns the number of successfull handled or, in case of failure -1...

	rene@math.fu-berlin.de
Newsgroups: comp.lang.c
Subject: C command set
From: towen@.cse.utoledo.edu (tom owen)
Date: 5 Jan 93 16:38:46 EST
Reply-To: towen@.cse.utoledo.edu
Distribution: world
Organization: The University of Toledo

     Sorry about the last post this is my first posting.
      
     A professor I am currently working for is looking for an abbreviated listing
of the commands in ANSI C.  By this I mean he wants a summary not a text book, he
already has that.  Thanks in advance.  If anyone knows if or where such an animal
exists please either post it here or E-mail me please.  Thanks in advance.

Tom Owen----No one tells the truth on purpose---- towen@maine.cse.utoledo.edu




Newsgroups: comp.lang.c,comp.lang.pascal
From: jrv@mbunix.mitre.org (Van Zandt)
Subject: Re: Printer and plotter BGIs wanted !
Organization: The MITRE Corp., Bedford, Ma.
Date: Mon, 4 Jan 1993 17:59:58 GMT

In article <graham-291292112743@eprmac.rice.edu> graham@taffy.rice.edu (Graham Palmer) writes:
>
>In article <92350.163535IFF291@DJUKFA11.BITNET>, IFF291@DJUKFA11.BITNET
>(Stephan Petersen) wrote:
>> I'm looking for suppliers of BGIs for various printer and plotter
>> models, to be used with Turbo Pascal und Turbo/Borland C. If anybody
>> knows any sources for these interfaces, could you please let me know?

Try PRBGI at Simtel20, directory <msdos.borland>.
                     - Jim Van Zandt <jrv@mitre.com>

Xref: sparky comp.lang.c:19564 comp.lang.c++:18982
From: roy%cybrspc@cs.umn.edu (Roy M. Silvernail)
Newsgroups: comp.lang.c
Subject: Re: Problem with string processing.
Date: Mon, 04 Jan 93 19:14:36 CST
Organization: Villa CyberSpace, Minneapolis, MN

hollasch@kpc.com (Steve Hollasch) writes:

>             while (*ptr++ = *str++);    /* Note assign op and null body. */

(nice touch, BTW)  How does this differ from 'strcpy(ptr, str)' besides
the function call overhead?

And just for the heck of it....

Assuming a large enough string for the append, and low-high byte ordering,
would this work?

strcat(str,(char *)&ch);

(or have I been drinking too much coffee again? :-} )
--
    Roy M. Silvernail   | #include <stdio.h>                 | "press to test"
 roy%cybrspc@cs.umn.edu | main(){                            |     <click>
 cybrspc!roy@cs.umn.edu |  float x=1;                        | "release
                        |  printf("Just my $%.2f.\n",x/50);} |    to detonate"
Newsgroups: comp.lang.c
From: eager@eagercon.com (Michael J. Eager)
Subject: Re: Problem with string processing.
Reply-To: eager@eagercon.com
Organization: Eager Consulting
Date: Tue, 5 Jan 1993 00:57:39 GMT

In article 11483@eagercon.com, eager@eagercon.com (Michael J. Eager) 
I wrote 
>
>
>void add_char_to_str(char ch, char *str)
>{
>    while (*str++);		/* Skip to end of string */
>    *str++ = ch;		/* Add character */

Should be *(str-1) = c;

>    *str = '\0';		/* Terminate string */
>}


---
Michael J. Eager		Michael.Eager@eagercon.com
Eager Consulting		(415) 325-8077 
1960 Park Boulevard, Palo Alto, CA 94306-1141
From: bketcham@stein.u.washington.edu (Benjamin Ketcham)
Newsgroups: comp.lang.c
Subject: Re: Pointer math (was Re: adding strings together)
Date: 6 Jan 1993 07:23:03 GMT
Organization: University of Washington, Seattle
NNTP-Posting-Host: stein.u.washington.edu

In article <C0E3Js.KIG@ocsmd.ocs.com> ted@ocsmd.ocs.com (Ted Scott) writes:
>Benjamin Ketcham (bketcham@stein.u.washington.edu) wrote:
>: It's illegal to perform addition on pointers. 
>
>'Tisit?  consider:

[example of adding an integer to a pointer deleted]

>Looks like addition and subtraction to me :-0

>I contend that C will let you do alot without realizing what you're
>doing. You can add two string pointers together, just don't expect the 
>result to be a concatenated string.

[begin excerpt from K&R2]

The valid pointer operations are assignment of pointers of the same type,
adding or subtracting a pointer and an integer, subtracting or comparing two
pointers to members of the same array, and assigning or comparing to zero.
All other pointer arithmetic is illegal.  It is not legal to add two pointers
...

[end excerpt from K&R2]

I'm no C genius, but this does seem pretty clear.  There's a big difference
between adding integers to pointers (offsetting), and adding two pointers
(might be addition of two large 32 bit numbers, who knows?).  The original
poster was referring to wanting to add two pointers, and this is what I was
saying was illegal.  Maybe my original response didn't make clear that I
was *not* talking about addition of pointers and integers, but this should
have been clear from the original context.

--ben

PS, I originally tried to respond to the original poster via email, but
couldn't make connection.
Newsgroups: comp.lang.c
From: charlesc@engin.umich.edu (Charles QC Chan)
Subject: C or C++
Date: Tue, 12 Jan 93 20:14:10 EST
Organization: University of Michigan Engineering, Ann Arbor

 Can anyone give me advice whether I should learn C++ first then C or
the other way round? Also, which book is best for C++ or C?

 Thanx in advance

charles
---------

Newsgroups: comp.lang.c
From: tongb@woods.ulowell.edu
Subject: Piping and return code again! Please help !!!
Organization: University of Lowell
Date: Tue, 5 Jan 1993 02:28:44 GMT


Please help!!!!!

How do we make piping works in C for a DOS system?

Dos offers:

c:> program1 | program2

to pass the output of the program1 as the input of the program2.  Now if we
have a C var declared as

char mystring[] = "this is a string";

and we have a DOS program program2.exe which reads a string from stdin and
return a exit code (used in batch file as errorlevel).

How do I pass mystring to the program2.exe and get a return code in C?

I can't sleep if this problem is not solved.  Please help !!!!

tongb@woods.ulowell.edu

Newsgroups: comp.lang.c
From: mikee@seas.gwu.edu (Mike Me)
Subject: Borland C 3.1 Turbo Vision BUG
Organization: George Washington University
Date: Sun, 10 Jan 1993 07:27:44 GMT

This is a posible bug under Broland C 3.` Turbo Vision.

If you swithc into any graphics mode, and afterwards try to use

a Turbo Vision type of thing, the MOUSE will show up. It does work,
but the cursor is NO-WHERE to be found.

Can anyone colaborate this?

I am currently using my portable and do not have my books handy.
I'll check them on M-day though to see if Borland says anything about
this..


Should one contact Borland about something like this?
what is proper procedure (or is there one?)

Thanx,
	MikeE

Newsgroups: comp.lang.c,comp.unix.questions
From: chou@umvlsi.ecs.umass.edu ()
Subject: Non-Blocking I/O
Originator: chou@umvlsi.ecs.umass.edu
Organization: University of Massachusetts, Amherst
Date: Wed, 6 Jan 1993 18:43:30 GMT



I am trying to use non-blocking I/O in C and am having difficulties.
I would like to have a read routine that would return immediately if
there is no input available in standard input.  This is what I have
tried:

#include <stdio.h>
#include <fcntl.h>

main ()
{
    char buf[1];
    size_t size = 1;

    /*  Set stdin to be non-blocking.  */
    fcntl (stdin, F_SETFL, O_NDELAY);

    /*  Prompt for some input.  */
    printf ("Input a character:  ");

    /*  Get a character from stdin.  If there is nothing in stdin, I want
	this to return immediately.  */
    fread (buf, size, 1, stdin);
}

Any help with this would be appreciated.

Please send your mail to chou@ecs.umass.edu

Thanks,
Yon
Newsgroups: comp.lang.c
From: raph@panache.demon.co.uk (Raphael mankin)
Subject: Re: applying or 
Distribution: world
Organization: Solvfield Ltd.
Reply-To: raph@panache.demon.co.uk
X-Mailer: Simple NEWS 1.90 (ka9q DIS 1.19)
Date: Mon, 4 Jan 1993 23:29:56 +0000

In article <1993Jan1.184655.7023@viewlogic.com> josh@viewlogic.com writes:

.. stuff deleted ...
>optimizations that the short-circuit guarantee prevents!  Would it be
>legal for a C or Scheme compiler to avoid the short-circuiting if it
>could prove there were no side effects involved, and if it looked like
>a fruitful optimization?
>-- 
The language semantics are defined such that the OR and AND oeprators are 
sequential. Therefore, if you can *detect* that the order has been changed, the
compiler may not change the order. If there is no way that you can detect the
order of evaluation, then what the hell...

-- 
Raphael Mankin			Nil taurus excretum
Newsgroups: comp.lang.c
From: jutta@opal.cs.tu-berlin.de (Jutta Degener)
Subject: Re: "const" Parameter compatibility 
Keywords: prototypes const
Organization: Techn. University of Berlin, Germany
Date: Thu, 7 Jan 1993 19:25:57 GMT

hanafey@eplrx7.es.dupont.com (Mike Hanafey) writes:
> Are the compiler messages below a bug, or is this correct ANSI C?

The compiler is right, the code is incorrect.  (I would like it to be
correct, personally, but ANSI decrees otherwise.  Does anyone know why?)

In short, the standard allows assigning a pointer-to-foo to a
pointer-to-const|volatile-foo, but that rule goes only one
level deep, it's not recursive.

Here are three lines of your code again, and one of the warnings.

>     1  int funca(const int **a)
>    10      int *b;
>    15      (void) funca(&b);
> "test.c", line 15: warning: argument is incompatible with prototype: arg #1

An ANSI C compiler must issue a warning when you call a function
whose prototype is in scope ("funca") with an argument ("&b") that
could not be assigned to an unqualified version of the parameter
in the prototype ("const int ** a").

(To avoid confusions later, in

	   const int ** a

it is not the "a" that is qualified by the const, it's the thing the
pointer it points to points to.  So an "unqualified version of the
parameter" is still

	   const int ** a)

When can you assign to this "a"?  You can assign two pointers to 
object if 

	"both operands are pointers to qualified or unqualified
	versions of compatible types, and the type pointed to by
	the left has all the qualifiers of the type pointed to
	by the right."
			[ANSI C, 3.3.16, Assignment Operators]

This means you can add qualifiers to the things-pointed-to,
but can't strip them off easily.  Very nice, except that it's not
recursive -- once you're talking about "the type pointed to",
you're stuck with type compatibility.

Type compatibility is very strict.  Pointers are compatible if
they point to compatible types, and types are compatible only if
they have the same qualifiers, so

	int *
and
	const int * 

are not compatible; all that made assignments between them work
was the special rule above.

Jutta (jutta@cs.tu-berlin.de)
Newsgroups: comp.lang.c
From: champion@cch.coventry.ac.uk (Alun)
Subject: Re: A different C puzzle
Organization: Coventry University, Coventry, UK.
Date: Tue, 5 Jan 1993 09:42:33 GMT

In article <1992Dec23.185348.19343@sharebase.com> keith@torme.sharebase.com (Keith Chambless) writes:
~In article <1992Dec23.092712.2408@sq.sq.com> msb@sq.sq.com (Mark Brader) writes:
~>> > Write a [C] program that uses every valid character exactly once.
~>> I should think it would be rather difficult to use only one " ...
~
~Best I could come up with is:
~
~#
~
~main()
~{
~	double *ABCDEFGHIJKLMNOPQRSTUVWXYZ[],
~		   c_fghjkpqrstvwxyz = -!9 + 8.0 / 7 > 6 < 5 % 4 ? 3 : 2 & 1;
~}
~
~
~missing are ' " \

What about ^ | ~
Also it doesn't seem to compile - it complains about no size for the array.

#
double *ABCDEFGHIJKLMNOPQRSTUVWXYZ[],
       c_fghjkpqrstvwxyz = -!9 ^ +8. / 7 > 6 < 5 % 4 ? 3 : 2 & 1 | ~0;

main()
{ }

Sticking the double as global does compile with gcc -ansi and I have added the
other operators.

I can't see any way of gettting the ' " \ into the program.

  -Alun
  
-- 
  *I'm as bad as the worst - but thank God(?) I am as good as the best.*
    *People who think they know everything annoy those of us that do.*
A.Champion                |  That's an interesting point, in the sense of
(champion@uk.ac.cov.cch)  |    being very not interesting at all. - The Liar
Newsgroups: comp.lang.c
From: rfries@sceng.ub.com (Robert Fries)
Subject: Re: Executing DOS commands from program
Organization: Ungermann Bass
Date: Mon, 11 Jan 1993 23:21:37 GMT

In article <1993Jan11.214706.11039@athena.mit.edu> acgoldis@athena.mit.edu (Andrew C Goldish) writes:

>  I am writing a Microsoft C program to be run on computer A which is supposed to
>get a command from the user (no problem) and execute it ON COMPUTER B, with any
>errors and results from computer B's calculation sent back to computer A.  How
>exactly do I do this?  Borland C (or at least Pascal) has an EXEC function, but
>I can't use that here.  The command is stored as char comnd[255] or so.

>                                                       A. Goldish

This is a really big question. You mention Microsoft C, and Borland, so I 
assume you're talking about MSDOS.

Some questions follow. How are computers A and B connected? Are both 
running MSDOS ? Is computer B dedicated to running commands from computer A?
Is A supposed to wait for the result, or periodically check with B for
completion?

These are just the first few questions that come to mind. Your question,
as stated, cannot be answered.

Except, perhaps, with "It can't be done".

Robert

//////////////////////////////////////////////////////////////////////////
Robert Fries
Ungermann-Bass Inc.

DISCLAIMER:
    Opinions contained herein are my own, and are not necessarily those
    of Ungermann-Bass.
//////////////////////////////////////////////////////////////////////////
Newsgroups: comp.lang.c
From: apwhite@unix1.tcd.ie (Andrew White)
Subject: passing variables to system() ?
Organization: Trinity College, Dublin
Date: Tue, 12 Jan 1993 12:07:59 GMT

Hi There,
  I have a C program written in which I want to call another program (written in
awk), passing that program a variable -ie (awkprog x=variable filename) is there
a way I can do this with system() or is it a bit more complicated than that??

BTW Yes, I do need to call the program , I am not going to use C for field 
matching etc. 


Thanks
Andrew.

--
------------"Strive never to forget the difference between arson and incest----
--------------or you may end up like the guy who set fire to his sister"------- 
                    ____________Andrew White_____________
apwhite@unix1.tcd.ie OR apwhite@vax1.tcd.ie OR white@disco-sol.dfki.uni-sb.de 
Newsgroups: comp.lang.c
From: bandy@netnews.jhuapl.edu (Mike Bandy)
Subject: Re: Any hope for me..?
Organization: JHU/Applied Physics Laboratory
Date: Mon, 4 Jan 1993 17:46:43 GMT

kimball@stsci.edu (Timothy Kimball) writes:

>Dave Eisen (dkeisen@leland.Stanford.EDU) wrote:
>: In article <1993Jan2.215528.1@npe.isnet.inmos.co.uk> adcrumpler@npe.isnet.inmos.co.uk writes:
>: 
>: >
>: >What I'd like to know is:-  What range of academic qualifications
>: >do the various contributors possess ?  And can I, who didnt really
>: >make the most of his schooldays, hope to attain similar levels
>: >of knowledge and competence as you all possess ?
>: 
>: Academic qualifications are not real important for programming. I
>: have all kinds of academic qualifications, none of which are in
>: CS or engineering. I learned all I know about C, UNIX, programming,
>: and the rest of CS by reading books, having a job which forced me 
>: to learn a little bit, reading the net, and sitting in on a few courses.

>I'll second this.  All I ever learned in a formal classroom was Fortran.
>C, Unix, etc. are, IMHO, best learned at the keyboard (maybe with K&R2
>at your elbow).  I don't think your (adcrumpler's) future depends as much
>on how you spent your school days as how you'll spend the next couple of
>years.

>BTW: My backgound is physics and astronomy.

I'm from the other camp.  I have a masters degree in Computer Science and
feel that my university experience honed my skills by offering me 
theory matched with challenging projects.  I also have 13 years of 
professional programming, but I feel that it wasn't until I finished
my BS several years ago, and now my masters this year that my programming
skills have really taken off.  Another item in my background is that
I've worked in several fields; from business systems to distributed
process control to systems management to large scale digital signal 
processing.  There's nothing like a little variety to round out the
background.

But if there's three things you can do to be good, I'd have to say 
they were: practice, practice, and practice!

-- 

	Mike Bandy
	bandy@aplcomm.jhuapl.edu
	Johns Hopkins University / Applied Physics Lab
Newsgroups: comp.lang.c,comp.lang.c++,comp.lang.pascal
From: ctaylor@cs.uiuc.edu (Conrad Taylor)
Subject: E-mail address and/or MIX assembler...???
Organization: University of Illinois at Urbana-Champaign
Date: Fri, 8 Jan 1993 18:14:46 GMT

         Would anyone have an e-mail address for Martin J. Moore?  He had
written a MIX assembler for VAX/VMS system.  Or would anyone have an anonymous
FTP address that I can obtain the MIX assembler?  I would like to implement thisMIX assembler in Pascal/C/C++ (individual implementations of course).  Well, 
thanks in advance to all that reply to this post.

-Con

ps:  My e-mail is ctaylor@silver.lcs.mit.edu or
     taylor1@wse.eecs.uic.edu.


Newsgroups: comp.lang.c
From: bandy@netnews.jhuapl.edu (Mike Bandy)
Subject: Re: Why would someone put 'char x[]' inside of a struct decl?
Organization: JHU/Applied Physics Laboratory
Date: Mon, 4 Jan 1993 17:25:12 GMT

peter@deepthought.unm.edu (Peter Blemel) writes:

>I'm trying (really I am) to write a Microsoft Windows app, and I've come across
>a structure (Prog ref, vol 4 pg90) that looks something like...

>struct DialogBoxHeader {
>	char szMenuName[];
>	char szFaceName[];
>};

>First, this reference sucks. It doesn't explain how to use this and a companion
>structure (on the following page) together. Second, I can't figure out how to
>initialize this structure(?). szMenuName isn't allocated any storage, and I can't
>allocate any for it because it's not a lvalue. 

Look at the struct as:

struct DialogBoxHeader {
	char *szMenuName;
	char *szFaceName;
};

Then the fields are pointers to character strings that you supply.  So you
can do:

#define MyMenuName "Projects"
...
struct DialogBoxHeader DBH;
...
DBH.sz_MenuName = MyMenuName;

(Note, I'm not a Windows programmer, but AmigaDOS does similar things.)

-- 

	Mike Bandy
	bandy@aplcomm.jhuapl.edu
	Johns Hopkins University / Applied Physics Lab
Newsgroups: comp.lang.c,comp.lang.c++
From: wirzeniu@klaava.Helsinki.FI (Lars Wirzenius)
Subject: Re: Dynamic Mem Help
Organization: University of Helsinki
Date: Fri, 8 Jan 1993 20:58:09 GMT

rfries@sceng.ub.com (Robert Fries) writes:
>You'll have to use an explicit cast of this value to 
>assign it to a variable of type 'char *', e.g.:
>
>	str = (char *)calloc(10, sizeof(char));

This is required in C++ only, not in ANSI C.

In ANSI C no casts are needed when assigning a "void *" to a pointer
to any data type (not including pointers to functions), or the other
way around.

--
Lars.Wirzenius@helsinki.fi  (finger wirzeniu@klaava.helsinki.fi)
   MS-DOS, you can't live with it, you can live without it.
Xref: sparky comp.lang.c:19425 comp.unix.questions:15324
From: cpm@uniplex.co.uk (Chris Murray)
Newsgroups: comp.lang.c,comp.unix.questions
Subject: Re: Non-Blocking I/O
Date: 8 Jan 93 20:37:00 GMT
Reply-To: cpm@uniplex.UUCP (Chris Murray)
Organization: Uniplex Limited, Redwood House, Hemel Hempstead

In article <1993Jan6.184330.4041@risky.ecs.umass.edu> chou@umvlsi.ecs.umass.edu writes:
>
>
>I am trying to use non-blocking I/O in C and am having difficulties.
>I would like to have a read routine that would return immediately if
>there is no input available in standard input.  This is what I have
>tried:
>
>#include <stdio.h>
>#include <fcntl.h>
>
>main ()
>{
>    char buf[1];
>    size_t size = 1;
>
>    /*  Set stdin to be non-blocking.  */
>    fcntl (stdin, F_SETFL, O_NDELAY);
>
>    /*  Prompt for some input.  */
>    printf ("Input a character:  ");
>
>    /*  Get a character from stdin.  If there is nothing in stdin, I want
>	this to return immediately.  */
>    fread (buf, size, 1, stdin);
>}
>
>Any help with this would be appreciated.
>
>Please send your mail to chou@ecs.umass.edu
>
>Thanks,
>Yon

You're getting streams confused with file descriptors.  Look at the man
pages for fcntl and you'll see it takes a file descriptor, not a stream.
Change the fcntl line to fcntl (fileno(stdin), F_SETFL, O_NDELAY);
and it should work.
Newsgroups: comp.lang.c
Subject: Re:  Hex escaping in strings, (porting from gcc to cc)
From: alien@acheron.amigans.gen.nz (Ross Smith)
Date: 7 Jan 93 18:09:39 GMT+12
Distribution: world
Organization: Muppet Labs

In article <C0ELuw.Hsv@portal.hq.videocart.com> dfuller@portal.hq.videocart.com (Dave Fuller) writes:
>chrisp@grace.cri.nz writes:
>: Hi,
>:   I have a problem with porting from gcc to cc (on a sun sparc station)
>:
>:      puts("\x1b=");          /* set's the terminals keypad mode */
>:
>:  Works fine with gcc, the "\x1b" is interpreted as ascii 27, escape.  But
>:  on cc it just prints "x1b=".
>:
>:  Is the hex code escape an ansii extension,  how else can I do it?, I would
>:  rather avoid:
>:      sprintf(tmp,"%c=",27);
>:
>:                              Thanks,  Chris.    chrisp@grv.grace.cri.nz
>
>   You'll have to forgive me, i dont use gcc, and i dont keep track of
>the ANSI standard very well. What you have here is probably an extension
>of gcc. The \ is used to escape n b t and a. Maybe others. It would appear
>that gcc added x as an escape for translating hex codes. What you need to
>do to make this work is to change the x1b to its octal value. This is
>understood in ANSI C.

No, the "\x.." convention is ANSI. If your compiler doesn't accept it, it's
not an ANSI compiler. The octal version is only needed if you're concerned
with portability to prehistoric compilers, which should be a non-issue by
now.


--
...... Ross Smith (Wanganui, NZ) ...... alien@acheron.amigans.gen.nz ......

"I blame you for the moonlit sky and the dream that died with the Eagle's flight
I blame you for the moonlit nights when I wonder why are the seas still dry
Don't blame me, sleeping satellite"                              (Tasmin Archer)

--