reverse-video prompts in xterm on SunOS

How does one get a reverse-video prompt in [t]csh on an xterm on a SunOS 4.1.4 system?  The code I have that works on most other system fails here.  Instead of getting reverse video, I get the ^[[7m style interpretation, which isn't pretty.  Something on the Sun is intercepting the ESC characters and replacing them with ^[ so the xterm doesn't see the escape sequence.

Does someone have a .cshrc code fragment that successfully produces a reverse-video prompt on a SunOS xterm?

Here are the definitions that work elsewhere but not here:

#   setprompt   'set prompt="^[[7m$USER@$HOSTNAME":"$wd3":"^[[m "'
#   setprompt   'set prompt="`tput smso`$USER@$HOSTNAME":"$wd3":"`tput rmso` "'


You should replace the ^[ pairs with an ESC char, of course.
JohnChambersAsked:
Who is Participating?
 
braveheartConnect With a Mentor Commented:
Both examples worked fine for me and I am using an xterm on Solaris right now so it is probably something wrong in your terminal setup.

Although your prompt setup should normally be established in the
.cshrc (so that you can look to see if it is set to distinguish between terminal sessions and script driven shells) it is more usual for the terminal setup to be in the .login file (so you only perform it once and not for every shell). However, don't forget that in your login shell, .cshrc is sourced before .login. This means that if you are using the tput method then it may not know what terminal type you are using until after you have set the prompt.

In .login add the following lines:

set noglob
eval `tset -s xterm`
unset noglob

Check that TERM is set to xterm when you have logged in.

For more info, check the man pages on tset and stty.


0
 
mlevCommented:
I have one that works on SunOS 5.5, but it's only for tcsh.
set prompt="%S%n@%m:%~%s%#"
0
 
henrysCommented:
This works for me (SunOS 4.1.3):
pau# echo $shell
/bin/csh
pau# echo $TERM
xterm
pau# alias setprompt
set prompt="^[[7m$USER@$HOSTNAME":"$wd3":"^[[m "
pau# setprompt
root@pau:/:  <-- this comes out in reverse video

The "Enable Reverse Video" item under the "VT Options" menu is _NOT_ checked.

Try seeing what the shell thinks your $TERM is

0
Introducing Cloud Class® training courses

Tech changes fast. You can learn faster. That’s why we’re bringing professional training courses to Experts Exchange. With a subscription, you can access all the Cloud Class® courses to expand your education, prep for certifications, and get top-notch instructions.

 
JohnChambersAuthor Commented:
Didn't work at all for me.  Here's the result of one of several
tests:

honk-jmc-3% set prompt="^[[7m$USER@$HOSTNAME"^[[m"
Unmatched ".
honk-jmc-4% set prompt="^[[7m$USER@$HOSTNAME":"^[[m"
^[[7mjmc@honk:^[[m

The prompt came out with the "^[[7m" string; this should have been interpreted as "switch to reverse video" but it wasn't.

Part of the evidence of what may be wrong is that when I type
a command, and include an ESC char, the screen flashes.  This
presumably means that some routine (maybe in the device driver,
maybe in the shell) is noticing the ESC and acting on it rather
than passing it in as a data char.  Thus, when I include an
escape sequence in the prompt string, the ESC doesn't make it
into the string, or maybe is there but in garbled "^[" form.
0
 
JohnChambersAuthor Commented:
The %S...%s worked.  And, after I knew what it was, I even found
it in the tcsh man page.  Of course, they called it by a name
that I'd never heard before ("standout mode"), so even if I'd
thought to grep through `man tcsh`, I still probably wouldn't
have ever found it.  Anyway, I now have yet another strange way
to do this useful thing.  Thanks.
0
 
braveheartCommented:
For a terminal independent way of inserting control sequences
into prompts, etc., use the tput command. So to switch to reverse
video execute "tput smso" or "tput rev" and to switch back use
"tput rmso" or "tput sgr0".

tput can also be used for ringing the bell, moving the cursor
and so on, all in a reasonably portable manner.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.