🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Ray Moody Tue, 13 Jun 1989 21:35
More decode_prompt_string hacking.
#79
Author: Ray Moody
Date: Tue, 13 Jun 1989 21:35
196 lines
5823 bytes
    If suggestions for neat-o-keen additions to decode_prompt_string
are being solicited, then here is mine.  I have added \H, which
inserts the host name like \h, but it only inserts up to the first
dot.  I.E., I can put "gibbs" in my prompt instead of
"gibbs.physics.purdue.edu", which is a bit long to put in every prompt.

    You need to apply Anders Ellefsrud's patch for \~ before you can
apply mine.  Also, I have renamed his addition from \~ to \W because,
in my humble opinion, it would be a ``Good Idea'' to adopt the tcsh
convention of using capital letters as alternates for the lower case
letters.

								Ray
-------------------------------------------------------------------------------
RCS file: RCS/shell.c,v
retrieving revision 0.99.1.1
diff -c -r0.99.1.1 shell.c
*** /tmp/,RCSt1018273	Tue Jun 13 15:06:59 1989
--- shell.c	Tue Jun 13 15:04:38 1989
***************
*** 36,41
  
  #include <stdio.h>
  #include <signal.h>
  #include <sys/errno.h>
  #include <sys/types.h>
  #ifndef SONY

--- 36,42 -----
  
  #include <stdio.h>
  #include <signal.h>
+ #include <strings.h> /* Ray Moody: June 13 1989 */
  #include <sys/errno.h>
  #include <sys/types.h>
  #ifndef SONY
***************
*** 86,91
  /* The current host's name. */
  char *current_host_name = (char *)NULL;
  
  /* Zero value means don't print prompts. */
  int prompt_printable = 1;
  

--- 87,96 -----
  /* The current host's name. */
  char *current_host_name = (char *)NULL;
  
+ /* Ray Moody: Jun 13 1989 */
+ /* The current host's name, but only up to the first `.' */
+ char *current_short_host_name = (char *)NULL;
+ 
  /* Zero value means don't print prompts. */
  int prompt_printable = 1;
  
***************
*** 643,648
    {
      struct passwd *entry = getpwuid (getuid ());
      char hostname[255];
      
  #if defined(SYSV) && !defined(HPUX)
      current_host_name = "localhost";

--- 648,654 -----
    {
      struct passwd *entry = getpwuid (getuid ());
      char hostname[255];
+     char *dot;			/* Ray Moody: June 13 1989 */
      
  #if defined(SYSV) && !defined(HPUX)
      current_host_name = "localhost";
***************
*** 652,657
      else
        current_host_name = savestring (hostname);
  #endif
      if (entry)
        current_user_name = savestring (entry->pw_name);
      else

--- 658,668 -----
      else
        current_host_name = savestring (hostname);
  #endif
+     /* Ray Moody: June 13 1989 */
+     if ((dot = index (hostname, '.')) != (char *)NULL)
+       *dot = '\000';
+     current_short_host_name = savestring (hostname);
+ 
      if (entry)
        current_user_name = savestring (entry->pw_name);
      else
===================================================================
RCS file: RCS/parse.y,v
retrieving revision 0.99.1.1
diff -c -r0.99.1.1 parse.y
*** /tmp/,RCSt1018273	Tue Jun 13 15:07:09 1989
--- parse.y	Tue Jun 13 14:47:26 1989
***************
*** 1370,1376
  	\n	CRLF
  	\s	the name of the shell
  	\w	the current working directory
! 	\~	the current working directory with ~ substituted for $HOME
  	\u	your username
  	\h	the hostname
  	\#	the command number of this command

--- 1370,1376 -----
  	\n	CRLF
  	\s	the name of the shell
  	\w	the current working directory
! 	\W	the current working directory with ~ substituted for $HOME
  	\u	your username
  	\h	the hostname
  	\H	the hostname, but only up to the first `.'
***************
*** 1373,1378
  	\~	the current working directory with ~ substituted for $HOME
  	\u	your username
  	\h	the hostname
  	\#	the command number of this command
  	\!	the history number of this command
  	\<octal> character code in octal

--- 1373,1379 -----
  	\W	the current working directory with ~ substituted for $HOME
  	\u	your username
  	\h	the hostname
+ 	\H	the hostname, but only up to the first `.'
  	\#	the command number of this command
  	\!	the history number of this command
  	\<octal> character code in octal
***************
*** 1457,1463
  	}
  	
        case 'w':
!       case '~':
  	{
  	  /* We would like to use the value of $PWD, but it turns out that
  	     this could be a bad idea because the user could set PWD to

--- 1458,1464 -----
  	}
  	
        case 'w':
!       case 'W':
  	{
  	  /* We would like to use the value of $PWD, but it turns out that
  	     this could be a bad idea because the user could set PWD to
***************
*** 1480,1486
  	  getwd (temp);
  #endif /* EFFICIENT */
  
! 	  if (c == '~') {
  		  int idx;
  		  if (t_string = get_string_value ("HOME")) {
  			  idx = strlen(t_string);

--- 1481,1487 -----
  	  getwd (temp);
  #endif /* EFFICIENT */
  
! 	  if (c == 'W') {
  		  int idx;
  		  if (t_string = get_string_value ("HOME")) {
  			  idx = strlen(t_string);
***************
*** 1504,1509
  	{
  	  extern char *current_host_name;
  	  temp = savestring (current_host_name);
  	  goto add_string;
  	}
  

--- 1505,1518 -----
  	{
  	  extern char *current_host_name;
  	  temp = savestring (current_host_name);
+ 	  goto add_string;
+ 	}
+ 
+ 	/* Added Tue Jun 13 14:36:18 EST 1989 by Ray Moody */
+       case 'H':
+ 	{
+ 	  extern char *current_short_host_name;
+ 	  temp = savestring (current_short_host_name);
  	  goto add_string;
  	}
  
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads