🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: dnet.chat
Article #44

"Authoritative" patch #1 to ircII 2.5.1

#44
From: Carl von Loesch
Date: Thu, 19 Dec 1991 01:59
460 lines
14158 bytes
Patch #1 to ircII 2.1.5 making it 2.1.5a

This re-enables /who -s and /who -h, using network-friendly server requests.
It also removes the underline codes from topic and who messages, introduces
an UNDERLINE_VIDEO variable to switch it all off.

This patch also includes little bug fixes that were sent to me in the
last days.

Apply within the source dir.

*** Makefile.proto~	Thu Dec 19 01:41:44 1991
--- Makefile.proto	Thu Dec 19 01:42:29 1991
***************
*** 69,79 ****
  
  vars.h: count
  	@${RM} vars.h
! 	count <vars.h.proto >vars.h
  
  hook.h: count
  	@${RM} hook.h
! 	count <hook.h.proto >hook.h
  
  # Dependencies
  alias.o: config.h irc.h alias.h status.h edit.h history.h vars.h ircaux.h server.h window.h input.h
--- 69,79 ----
  
  vars.h: count
  	@${RM} vars.h
! 	./count <vars.h.proto >vars.h
  
  hook.h: count
  	@${RM} hook.h
! 	./count <hook.h.proto >hook.h
  
  # Dependencies
  alias.o: config.h irc.h alias.h status.h edit.h history.h vars.h ircaux.h server.h window.h input.h
*** edit.c~	Thu Dec 19 00:09:34 1991
--- edit.c	Thu Dec 19 00:39:23 1991
***************
*** 738,743 ****
--- 738,745 ----
  
      who_mask = 0;
      new_free(&who_name);
+     new_free(&who_host);
+     new_free(&who_server);
      new_free(&who_file);
      while (arg = next_arg(args, &args)) {
  	no_args = 0;
***************
*** 751,761 ****
  		who_mask |= WHO_OPS;
  	    else if (strnicmp(arg, "chops", len) == 0)
  		who_mask |= WHO_CHOPS;
! 	    else if (strnicmp(arg, "name", len) == 0) {
  		if (arg = next_arg(args, &args)) {
  		    who_mask |= WHO_NAME;
  		    malloc_strcpy(&who_name, arg);
! 		    channel = arg;
  		} else {
  		    put_it("*** WHO -NAME: missing arguement");
  		    return;
--- 753,781 ----
  		who_mask |= WHO_OPS;
  	    else if (strnicmp(arg, "chops", len) == 0)
  		who_mask |= WHO_CHOPS;
! 	    else if (strnicmp(arg, "hosts", len) == 0) {
  		if (arg = next_arg(args, &args)) {
+ 		    who_mask |= WHO_HOST;
+ 		    malloc_strcpy(&who_host, arg);
+ 		    channel = who_host;
+ 		} else {
+ 		    put_it("*** WHO -HOSTS: missing arguement");
+ 		    return;
+ 		}
+ 	    } else if (strnicmp(arg, "servers", len) == 0) {
+ 		if (arg = next_arg(args, &args)) {
+ 		    who_mask |= WHO_SERVER;
+ 		    malloc_strcpy(&who_server, arg);
+ 		    channel = who_server;
+ 		} else {
+ 		    put_it("*** WHO -SERVERS: missing arguement");
+ 		    return;
+ 		}
+ 	    } else if (strnicmp(arg, "name", len) == 0) {
+ 		if (arg = next_arg(args, &args)) {
  		    who_mask |= WHO_NAME;
  		    malloc_strcpy(&who_name, arg);
! 		    channel = who_name;
  		} else {
  		    put_it("*** WHO -NAME: missing arguement");
  		    return;
***************
*** 776,782 ****
  	} else if (strcmp(arg, "*") == 0)
  	    channel = get_channel_by_refnum(0);
  	else
! 	  channel = arg;
      }
      if (no_args)
  	put_it("*** No argument specified");
--- 796,802 ----
  	} else if (strcmp(arg, "*") == 0)
  	    channel = get_channel_by_refnum(0);
  	else
! 	  channel = arg;
      }
      if (no_args)
  	put_it("*** No argument specified");
*** help.c~	Thu Dec 19 01:45:40 1991
--- help.c	Thu Dec 19 01:45:29 1991
***************
*** 283,289 ****
  		break;
  	    default:
  #ifdef ZCAT
! 		memset(LastHelpFile, 0, sizeof(LastHelpFile));
  #endif 
  		help_put_it(help_list, "*** %schoices:", topic_list);
  		*buffer = null(char);
--- 283,289 ----
  		break;
  	    default:
  #ifdef ZCAT
! 		bzero(LastHelpFile, sizeof(LastHelpFile));
  #endif 
  		help_put_it(help_list, "*** %schoices:", topic_list);
  		*buffer = null(char);
*** irc.c~	Fri Dec 13 17:19:04 1991
--- irc.c	Thu Dec 19 00:28:02 1991
***************
*** 5,11 ****
   * Copyright(c) 1990 
   * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT 
   */
! #define IRCII_VERSION   "2.1.5"
  
  #ifdef HPUX
  #include <curses.h>
--- 5,11 ----
   * Copyright(c) 1990 
   * See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT 
   */
! #define IRCII_VERSION   "2.1.5a"
  
  #ifdef HPUX
  #include <curses.h>
***************
*** 83,88 ****
--- 83,90 ----
       empty_string[] = "",		/* just an empty string */
      *who_name = null(char *),		/* extra /who switch info */
      *who_file = null(char *),		/* extra /who switch info */
+     *who_server = null(char *),		/* extra /who switch info */
+     *who_host = null(char *),		/* extra /who switch info */
      *cannot_open = null(char *);	/* extra /who switch info */
  
  long idle_time = 0;
*** irc.h~	Thu Dec 19 00:05:01 1991
--- irc.h	Thu Dec 19 00:22:33 1991
***************
*** 132,137 ****
--- 132,139 ----
  #define WHO_ZERO 4
  #define WHO_CHOPS 8
  #define WHO_FILE 16
+ #define WHO_HOST 32
+ #define WHO_SERVER 64
  
  /* Define ZSUFFIX in case we are using ZCAT */
  #ifdef ZCAT
***************
*** 183,188 ****
--- 185,192 ----
  extern char *invite_channel;
  extern int who_mask;
  extern char *who_name;
+ extern char *who_host;
+ extern char *who_server;
  extern char *who_file;
  extern char *cannot_open;
  
*** lastlog.c~	Thu Dec 19 01:53:02 1991
--- lastlog.c	Thu Dec 19 01:53:36 1991
***************
*** 178,184 ****
          msg_level,
          len,
          mask = 0,
!         header;
      Lastlog *start_pos;
      char *match = null(char *),
          *arg;
--- 178,184 ----
          msg_level,
          len,
          mask = 0,
!         header = 1;
      Lastlog *start_pos;
      char *match = null(char *),
          *arg;
*** numbers.c~	Wed Dec 18 23:55:10 1991
--- numbers.c	Wed Dec 18 23:56:18 1991
***************
*** 167,176 ****
  	*(topic++)= null(char);
  	if (channel = next_arg(rest,&rest)){
  	  message_from(channel, LOG_CRAP);
! 	  put_it("*** Topic for %s: \026%s\026", channel, topic);
  	}else{
  	  message_from(null(char *), LOG_CURRENT);
! 	  put_it("*** Topic: \026%s\026", topic);
  	}
      }
  }
--- 167,176 ----
  	*(topic++)= null(char);
  	if (channel = next_arg(rest,&rest)){
  	  message_from(channel, LOG_CRAP);
! 	  put_it("*** Topic for %s: %s", channel, topic);
  	}else{
  	  message_from(null(char *), LOG_CURRENT);
! 	  put_it("*** Topic: %s", topic);
  	}
      }
  }
*** parse.c~	Tue Dec 17 01:37:32 1991
--- parse.c	Thu Dec 19 00:17:52 1991
***************
*** 98,104 ****
      {
  	line++;
  	if (do_hook(TOPIC_LIST, "%s * %s", from, line))
! 	    put_it("*** %s has changed the topic to \026%s\026", from, line);
      }
      else
      {
--- 98,104 ----
      {
  	line++;
  	if (do_hook(TOPIC_LIST, "%s * %s", from, line))
! 	    put_it("*** %s has changed the topic to %s", from, line);
      }
      else
      {
***************
*** 106,112 ****
  	    return;
  	line++;
  	if (do_hook(TOPIC_LIST, "%s %s %s", from, arg, line))
! 	    put_it("*** %s has changed the topic on channel %s to \026%s\026",
  		from, arg, line);
      }
      message_from(null(char *), LOG_CRAP);
--- 106,112 ----
  	    return;
  	line++;
  	if (do_hook(TOPIC_LIST, "%s %s %s", from, arg, line))
! 	    put_it("*** %s has changed the topic on channel %s to %s",
  		from, arg, line);
      }
      message_from(null(char *), LOG_CRAP);
***************
*** 215,223 ****
  
      if (last_width != get_int_var(CHANNEL_NAME_WIDTH_VAR)) {
  	if (last_width = get_int_var(CHANNEL_NAME_WIDTH_VAR))
! 	    sprintf(format, "%%-%u.%us %%-9s %%-3s %%s@%%s (\026%%s\026)", (unsigned char) last_width, (unsigned char) last_width);
  	else
! 	    strcpy(format, "%s\t%-9s %-3s %s@%s (\026%s\026)");
      }
      channel = next_arg(line, &line);
      user = next_arg(line, &line);
--- 215,223 ----
  
      if (last_width != get_int_var(CHANNEL_NAME_WIDTH_VAR)) {
  	if (last_width = get_int_var(CHANNEL_NAME_WIDTH_VAR))
! 	    sprintf(format, "%%-%u.%us %%-9s %%-3s %%s@%%s (%%s)", (unsigned char) last_width, (unsigned char) last_width);
  	else
! 	    strcpy(format, "%s\t%-9s %-3s %s@%s (%s)");
      }
      channel = next_arg(line, &line);
      user = next_arg(line, &line);
***************
*** 244,249 ****
--- 244,253 ----
  	  ok = ok && ((*(stat + 1) == '@') || (*(stat + 2) == '@'));
  	if (who_mask & WHO_NAME)
  	  ok = ok && wild_match(who_name, user);
+ 	if (who_mask & WHO_HOST)
+ 	  ok = ok && wild_match(who_host, host);
+ 	if (who_mask & WHO_SERVER)
+ 	  ok = ok && wild_match(who_server, server);
  	if (who_mask & WHO_FILE) {
  	  ok = 0;
  	  cannot_open = null(char *);
***************
*** 437,443 ****
  char *from,
      *line;
  {
!     int one_prints;
      char *chan;
  
      for (chan=walk_channels(from, 1);chan;chan=walk_channels(from, 0))
--- 441,447 ----
  char *from,
      *line;
  {
!     char one_prints = 0;
      char *chan;
  
      for (chan=walk_channels(from, 1);chan;chan=walk_channels(from, 0))
***************
*** 449,455 ****
      if (one_prints)
      {
  	message_from(what_channel(from), LOG_CRAP);
! 	if (do_hook(SIGNOFF_LIST, "%s", from))
  	    put_it("*** Signoff: %s (%s)", from, line+1);
      }
      remove_from_channel(null(char *), from,from_server);
--- 453,459 ----
      if (one_prints)
      {
  	message_from(what_channel(from), LOG_CRAP);
! 	if (do_hook(SIGNOFF_LIST, "%s %s", from, line+1))
  	    put_it("*** Signoff: %s (%s)", from, line+1);
      }
      remove_from_channel(null(char *), from,from_server);
*** vars.c~	Thu Dec 19 01:12:40 1991
--- vars.c	Thu Dec 19 01:17:11 1991
***************
*** 121,126 ****
--- 121,127 ----
   "STATUS_USER", STRING_TYPE_VAR, 0, NULL, build_status, 0,
   "STATUS_WINDOW", STRING_TYPE_VAR, 0, NULL, build_status, 0,
   "SUPPRESS_SERVER_MOTD", BOOL_TYPE_VAR, DEFAULT_SUPPRESS_SERVER_MOTD, NULL, NULL, 0,
+  "UNDERLINE_VIDEO", BOOL_TYPE_VAR, 1, NULL, set_underline_video, 0,
   "USE_OLD_MSG", BOOL_TYPE_VAR, DEFAULT_USE_OLD_MSG, NULL, NULL, 0,
   "USER_INFORMATION", STRING_TYPE_VAR, 0, NULL, NULL, 0,
   "VERBOSE_CTCP", BOOL_TYPE_VAR, DEFAULT_VERBOSE_CTCP, NULL, NULL, 0,
*** vars.h.proto~	Thu Dec 19 01:10:40 1991
--- vars.h.proto	Thu Dec 19 01:11:15 1991
***************
*** 88,94 ****
  #define STATUS_USER_VAR $
  #define STATUS_WINDOW_VAR $
  #define SUPPRESS_SERVER_MOTD_VAR $
! #define USE_OLD_MSG_VAR  $
  #define USERINFO_VAR $
  #define VERBOSE_CTCP_VAR $
  #define WARN_OF_IGNORES_VAR $
--- 88,95 ----
  #define STATUS_USER_VAR $
  #define STATUS_WINDOW_VAR $
  #define SUPPRESS_SERVER_MOTD_VAR $
! #define UNDERLINE_VIDEO_VAR $
! #define USE_OLD_MSG_VAR $
  #define USERINFO_VAR $
  #define VERBOSE_CTCP_VAR $
  #define WARN_OF_IGNORES_VAR $
*** window.c~	Thu Dec 19 01:23:35 1991
--- window.c	Thu Dec 19 01:22:44 1991
***************
*** 24,30 ****
  #include "hook.h"
  #include "dcc.h"
  
! static char underline = 0;	/* flag for underline mode  -lynx */
  
  /*
   * WindowStack: The structure for the POP, PUSH, and STACK functions. A
--- 24,30 ----
  #include "hook.h"
  #include "dcc.h"
  
! static char underline = 1;	/* value for underline mode, is 0 when on!  -lynx */
  
  /*
   * WindowStack: The structure for the POP, PUSH, and STACK functions. A
***************
*** 366,374 ****
  			    len = len - (written - CO);
  			fwrite(str, len, 1, stdout);
  			if (underline = 1 - underline)
- 			    term_underline_on();
- 			else
  			    term_underline_off();
  			*ptr = c;
  			str = ++ptr;
  			break;
--- 366,374 ----
  			    len = len - (written - CO);
  			fwrite(str, len, 1, stdout);
  			if (underline = 1 - underline)
  			    term_underline_off();
+ 			else
+ 			    term_underline_on();
  			*ptr = c;
  			str = ++ptr;
  			break;
***************
*** 384,392 ****
  			if (written > CO)
  			    len = len - (written - CO);
  			fwrite(str, len, 1, stdout);
! 			if (underline) {
  			    term_underline_off();
! 			    underline = 0;
  			}
  			display_highlight(OFF);
  			*ptr = c;
--- 384,392 ----
  			if (written > CO)
  			    len = len - (written - CO);
  			fwrite(str, len, 1, stdout);
! 			if (underline == 0) {
  			    term_underline_off();
! 			    underline = 1;
  			}
  			display_highlight(OFF);
  			*ptr = c;
***************
*** 2809,2812 ****
--- 2809,2822 ----
      for (tmp = window_list; tmp; tmp = tmp->next)
  	hold_mode(tmp, OFF, 1);
  
+ }
+ 
+ void set_underline_video(value)
+ int value;
+ {
+     if (value == OFF)
+ 	/* this will make underline toggle between 2 and -1 and never let it get to 0 */
+ 	underline = -1;
+     else
+ 	underline = 1;
  }
*** window.h~	Thu Dec 19 02:37:18 1991
--- window.h	Thu Dec 19 01:25:59 1991
***************
*** 98,103 ****
--- 98,104 ----
  extern void set_scroll();
  extern void reset_line_cnt();
  extern void set_continued_line();
+ extern void set_underline_video();
  extern int rite();
  extern void erase_display();
  extern void resize_display();
-- 
o+--------------------------------------------------------------------------+o
o!   Carl 'lynx' v. Loesch   _\/_    loesch@informatik.uni-oldenburg.de     !o
o!   _____________________    /\     244661 at DOLUNI1 (bitearn)            !o
o+--------------------------------------------------------------------------+o
This .signature had a security leak....       .signature cracked by KBR (cr)91
Technical Details
Message-ID: <1991Dec19.020056.2148@arbi.informatik.uni-oldenburg.de>
Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!math.fu-berlin.de!uniol!Carl.von.Loesch

Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit
X-Google-Thread: fc6b5,246ae57ba3569aec,start
X-Google-Attributes: gidfc6b5,public
X-Google-Thread: 16a693,246ae57ba3569aec,start
X-Google-Attributes: gid16a693,public
X-Google-ArrivalTime: 1991-12-18 21:46:47 PST
Path: arc1-ca.pugleaf.net!gmdzi!unido!mcsun!uunet!math.fu-berlin.de!uniol!Carl.von.Loesch
From: Carl.von.Loesch@arbi.informatik.uni-oldenburg.de (Carl von Loesch)
Newsgroups: dnet.chat,alt.irc
Subject: "Authoritative" patch #1 to ircII 2.5.1
Message-ID: <1991Dec19.020056.2148@arbi.informatik.uni-oldenburg.de>
Date: 19 Dec 91 01:59:54 GMT
Sender: news@arbi.informatik.uni-oldenburg.de (Usenet News System)
Organization: University of Oldenburg, Germany
Lines: 460