[comp.unix.aix] Blasted 8 digit error codes!

lindner@cs.umn.edu (Paul Lindner) (10/05/90)

Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
RS/6000?  If I see another one of them I think I'll scream!!  They're
even in vi!!  I wanted a workstation, not handmedowns from the
System/390!

(Pardon my ranting, it'll pass, as soon as I get X11R4 for my RS/6000
working :->)

But really, I want to get rid of them, anyone know how?


-- 
---------------------------------------------------------------------
Paul Lindner 			 	| Microcomputer & Workstation
Asst. Sun System Administrator	 	| Networks Center
lindner@boombox.micro.umn.edu		||||| | | | |  |  |  |   |   

mbrown@tonic.osf.org (Mark Brown) (10/05/90)

In article <1990Oct5.065442.8569@cs.umn.edu>, lindner@cs.umn.edu (Paul
Lindner) writes:
|> Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
|> RS/6000?  If I see another one of them I think I'll scream!!  They're
|> even in vi!!  I wanted a workstation, not handmedowns from the
|> System/390!

What? You don't *want* a three-line explanation every time something goes 
wrong? :-) :-)

Follow these instructions, and your messages will revert to the the familiar,
terse, cryptic UNIX messages you know and love. ("eh?" is *my* favorite.)

NOTE: You *can*, if you wish, replace "mv" with "rm" in these 
instructions. I don't recommend it - you may want these back again, if
you ever have a novice on the system (or if something goes wrong...).

--------clip-n-save--------------

#cd /usr/lpp/msg/$FOO      (in the US, $FOO == En_US . In other locales,
			    it will be something similar.)
#mv *.cat $BAR             ($BAR == some storage facility)

All commands (excepting shells and other programs currently running) will
now default to the XPG "C" locale, which is built into the code.

Restart your shells to have them change as well.

Mark Brown   IBM AWD / OSF  |"Coffee for my breakfast, whiskey by the side
The Good     mbrown@osf.org | it's a dark and gloomy mornin',
The Bad     uunet!osf!mbrown| gonna rain outside, outside ---
The Ugly     (617) 621-8981 |              ...and the forecast calls for pain."

jerry@heyman.austin.ibm.com (Jerry Heyman) (10/05/90)

In article <1990Oct5.065442.8569@cs.umn.edu> lindner@cs.umn.edu (Paul Lindner) writes:
>Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
>RS/6000?  If I see another one of them I think I'll scream!!  They're
>even in vi!!  I wanted a workstation, not handmedowns from the
>System/390!
>

I assume by the 8 digit error codes you are seeing, you're talking about 
something in the form of:

   XXX-XXXX very long and descriptive error message

If this is what you mean, check the LANG environment variable.  Because we
support multiple languages on output, the LANG variable is set to whichever
set of messages you have installed (by default I'm pretty sure its not set
to any of them specifically).

It sounds like your LANG variable is set to En_US (which stands for English,
United States - there is also one for the UK).  To get the default messages,
change your LANG variable to C.  If this doesn't solve your problem, please
be a little more descriptive and we can figure it out.

>---------------------------------------------------------------------
>Paul Lindner 			 	| Microcomputer & Workstation
>Asst. Sun System Administrator	 	| Networks Center
>lindner@boombox.micro.umn.edu		||||| | | | |  |  |  |   |   

Jerry Heyman
-- 
Jerry Heyman                     IBM T-R: jerry@heyman.austin.ibm.com
AWD Tools Development            VNET   : HEYMAN at AUSVMQ
AWD Austin                       T/L    : 793-3962
*** All opinions expressed are exactly that - my opinions and NOT IBM's

marc@ibmpa.awdpa.ibm.com (Marc Pawliger) (10/05/90)

In article <1990Oct5.065442.8569@cs.umn.edu>, lindner@cs.umn.edu (Paul Lindner) writes:

|> Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
|> RS/6000?  If I see another one of them I think I'll scream!!  They're
|> even in vi!!  I wanted a workstation, not handmedowns from the
|> System/390!

[....]

|> But really, I want to get rid of them, anyone know how?

Messages (error and otherwise) in AIX 3.1 are different depending on
the setting of the LANG environment variable.  As shipped, LANG gets
set to En_US, United States English, which are the errors with the
eight digit error codes.  They were meant to be more informative than
the standard UNIX errors.  And no, I personally don't like them either.

If you change LANG to 'C', you should get the 'classic' UNIX errors.
You can permanently change the default for all users by changing the 
file /etc/environment.  There is line for each of the environment 
variables that will be set for a user when they log in and LANG is
one of them.

And please don't scream - it wakes the programmers.

These are my opinions, not IBM's.

+---Marc Pawliger---IBM Advanced Workstations Division---Palo Alto, CA---+
|    Internet: marc%ibmsupt@uunet.uu.net     VNET:    MARCP at AUSVM6    |
|     UUCP:     uunet!ibmsupt!ibmpa!marc      Phone:   (415) 855-3493    |
+------IBMnet:   marc@ibmpa.awdpa.ibm.com------IBM T/L:  465-3493--------+

mbrown@tonic.osf.org (Mark Brown) (10/06/90)

marc@ibmpa.awdpa.ibm.com (Marc Pawliger) writes:
|> lindner@cs.umn.edu (Paul Lindner) writes:
|> |> Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
|> |> RS/6000?  If I see another one of them I think I'll scream!!  They're
|> |> even in vi!!  I wanted a workstation, not handmedowns from the
|> |> System/390!
|> 
|> |> But really, I want to get rid of them, anyone know how?
|> 
|> Messages (error and otherwise) in AIX 3.1 are different depending on
|> the setting of the LANG environment variable.  As shipped, LANG gets
|> set to En_US, United States English, which are the errors with the
|> eight digit error codes.  They were meant to be more informative than
|> the standard UNIX errors.  And no, I personally don't like them either.
|> 
|> If you change LANG to 'C', you should get the 'classic' UNIX errors.

The reason that I posted my solution - move/remove the /usr/lpp/msg/En_*/*
files INSTEAD of changing the LANG variable from En_* to C, is that the
LANG variable also governs collating order, etc for the given language.

Changing LANG to "C" will work only for English-speaking (or more properly,
ANSI-speaking) users.

It *is* a simpler solution, though.

Mark Brown   IBM AWD / OSF  |"Coffee for my breakfast, whiskey by the side
The Good     mbrown@osf.org | it's a dark and gloomy mornin',
The Bad     uunet!osf!mbrown| gonna rain outside, outside ---
The Ugly     (617) 621-8981 |              ...and the forecast calls for pain."

lindner@cs.umn.edu (Paul Lindner) (10/06/90)

jerry@heyman.austin.ibm.com (Jerry Heyman) writes:

>   XXX-XXXX very long and descriptive error message

>If this is what you mean, check the LANG environment variable.  Because we
>support multiple languages on output, the LANG variable is set to whichever
>set of messages you have installed (by default I'm pretty sure its not set
>to any of them specifically).

>It sounds like your LANG variable is set to En_US (which stands for English,
>United States - there is also one for the UK).  To get the default messages,
>change your LANG variable to C.  If this doesn't solve your problem, please
>be a little more descriptive and we can figure it out.

Yes this was the problem.  I changed it and now I am a happy.  However I
noticed that pcsim does not work correctly with the LANG set to C.
(I get this error: ERROR: NLS message catalog missing.)  Change back to
En_US and it works fine.  Are there any other programs that will break if
I set my LANG to C??

Thanks tons!
-- 
---------------------------------------------------------------------
Paul Lindner 			 	| Microcomputer & Workstation
Asst. Sun System Administrator	 	| Networks Center
lindner@boombox.micro.umn.edu		||||| | | | |  |  |  |   |   

jeffe@sandino.austin.ibm.com (Peter Jeffe 512.823.4091) (10/06/90)

In article <14415@paperboy.OSF.ORG> mbrown@tonic.osf.org (Mark Brown) writes:
>#cd /usr/lpp/msg/$FOO      (in the US, $FOO == En_US . In other locales,
>			    it will be something similar.)
>#mv *.cat $BAR             ($BAR == some storage facility)
>
>All commands (excepting shells and other programs currently running) will
>now default to the XPG "C" locale, which is built into the code.

The only problem with this is that there are many programs that don't
have default messages built into the code (yuk!).  These rely on the
catalogs being found in one of the directories in the NLSPATH, so if
you just blow away the catalogs in the $LANG directory you'll probably
disable these programs.

The saving grace (I think) is that when the LANG is set to C or nothing,
the NLSPATH is effectively set to /usr/lpp/msg/C alone; so any programs
that don't have built-in messages must have a link in the C directory
to their real catalog, otherwise they won't work with the default C
"language."

So: I believe that it is safe to blow away all catalogs in the $LANG
directory as long as they don't have a link in the C directory.  I.e.,
doing

    cd /usr/lpp/msg/$LANG  # assuming $LANG is En_US or the like
    for f in * ; do [ -f ../C/$f ] || mv $f $SAVEDIR ; done

should leave you with just the catalogs you need.  (You may also want
to blow away their corresponding symlinks in the prime directory to
free up that space.)

This way you can leave your LANG variable where it makes sense for your
locale (since this affects time/date/money format, collating sequence,
etc.), while not subjecting yourself to undue verbosity--a cherished
right of all Unix fans, eh?

-------------------------------------------------------------------------------
  disclaimer: given the subjective nature of reality, the opinions contained
  herein can have no relationship to any other person's conception of reality,
  and cannot therefore constitute grounds for a lawsuit, right?

Peter Jeffe   ...uunet!cs.utexas.edu!ibmchs!auschs!sandino.austin.ibm.com!jeffe

mlandau@bbn.com (Darleen, 7) (10/06/90)

lindner@cs.umn.edu (Paul Lindner) writes:

>Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
>RS/6000?  

Set your language environment to "C" instead of "USEnglish" or whatever
the default is.  This will cause at least MOST of the AIXV3.1 utilities 
to revert to standard perror-style error messages.

karish@mindcrf.UUCP (Chuck Karish) (10/07/90)

In article <1990Oct5.065442.8569@cs.umn.edu>, lindner@cs.umn.edu (Paul Lindner) writes:
> Is there any way to suppress the 8 digit error codes on AIX 3.1 on the
> RS/6000?  If I see another one of them I think I'll scream!!  They're
> even in vi!!  I wanted a workstation, not handmedowns from the
> System/390!

marc@ibmpa.awdpa.ibm.com (Marc Pawliger) and
jerry@heyman.austin.ibm.com (Jerry Heyman) replied with suggestions to
change the $LANG environment variable to C.  My experience (possibly
outdated) is that setting $LANG to C breaks the graphics mode of
`info'.  The messages used to set up the fancy info windows aren't
compiled in, so the windows pop up and display a bunch of error
messages.

mbrown@tonic.osf.org (Mark Brown) suggested moving/removing the
message catalogues.  This is easier to do selectively than the
$LANG fix.  However, you'll have to accept that some applications
will give you 'message catalogue not found' messages on  every startup.
This'll also preclude transparent use of the CD-ROM info database,
since it's read-only.

The complete solution will include making wrappers for those
applications that need the message catalogs, to set $LANG and then
invoke the application.
-- 

	Chuck Karish		karish@mindcraft.com
	Mindcraft, Inc.		(415) 323-9000		

frank@gremlin.austin.ibm.com (Frank Feuerbacher) (10/08/90)

> Yes this was the problem.  I changed it and now I am a happy.  However I
> noticed that pcsim does not work correctly with the LANG set to C.
> (I get this error: ERROR: NLS message catalog missing.)  Change back to
> En_US and it works fine.  Are there any other programs that will break if
> I set my LANG to C??

I hope that you took the time to call this problem in.  I do not know if it
has been reported or fixed.  You may be helping someone else (and yourself)
by letting the problem be known to the right people.

Thanx.

- Frank Feuerbacher


Disclaimer: I don't speak for my employer and they don't speak for me.

reilly@scotty.dccs.upenn.edu (G. Brendan Reilly) (10/11/90)

All of this has been an interesting discussion, but it appears that
after taking the steps outlined that it is still the case that error
messages from the C compiler come out in multi-line format.

How do I make the C compile put out single line error messages that
the next-error in EMACS can grok?  

jsalter@slo (10/12/90)

In article <30993@netnews.upenn.edu> reilly@scotty.dccs.upenn.edu (G. Brendan Reilly) writes:
>
>All of this has been an interesting discussion, but it appears that
>after taking the steps outlined that it is still the case that error
>messages from the C compiler come out in multi-line format.

>How do I make the C compile put out single line error messages that
>the next-error in EMACS can grok?  

I doubt very much that you can.  Having worked extensively with the C compiler,
unless you make your own error message catalog, I don't believe that you
will be able to get rid of those messages. 

If you do a:

	dspcat /usr/lpp/msg/C/xlc*msg.cat

you'll get a feel for the various messages the C compiler can put out.  It's
a LOT!

jim/jsalter  IBM AWD, Palo Alto  T465/(415)855-4427   VNET: JSALTER at AUSVMQ
Internet: jsalter@slo.awdpa.ibm.com         UUCP: ..!uunet!ibmsupt!jsalter 
	"Waco is a state of mind.  Once you've gone there,
		you never come back" - Leo