home *** CD-ROM | disk | FTP | other *** search
- *** 3.0.1/README Tue Aug 24 16:42:58 1993
- --- README Sat Nov 20 23:11:16 1993
- ***************
- *** 45,50 ****
- --- 45,60 ----
-
- ytalk@austin.eds.com
-
- + ---- PATCH LEVEL 02
- +
- + 1. Remove #elif directive, patch by Pete Wenzel.
- + 2. Recognize if party is refusing messages, thanks to J. Adam Hawkes.
- + 3. Linux support, thanks to Thilo Wunderlich.
- + 4. Port to AIX 3.1+.
- + 5. Add -s option to start in a shell, thanks to Mark Musone.
- + 6. Fix various error messages.
- + 7. Fix possible obscure bug in socket.c.
- +
- ---- PATCH LEVEL 01
-
- 1. Forcibly reset the scrolling region after a shell exits.
- *** 3.0.1/ytalk.1 Tue Aug 24 16:42:58 1993
- --- ytalk.1 Sat Nov 20 23:53:25 1993
- ***************
- *** 8,20 ****
- \fB\\$1\fR
- .PP
- ..
- ! .TH YTalk 1 "24 Jun 1993"
- .SH NAME
- ytalk - A multi-user chat program.
- .SH SYNOPSIS
- ! .B ytalk [-x] username...
- .SH DESCRIPTION
- ! .I YTalk V3.0 Patch Level 1
- .PP
- YTalk is in essence a multi-user chat program. It works almost exactly like
- the UNIX talk program and even communicates with the same talk daemon(s), but
- --- 8,20 ----
- \fB\\$1\fR
- .PP
- ..
- ! .TH YTalk 1 "20 Nov 1993"
- .SH NAME
- ytalk - A multi-user chat program.
- .SH SYNOPSIS
- ! .B ytalk [-x] [-s] username...
- .SH DESCRIPTION
- ! .I YTalk V3.0 Patch Level 2
- .PP
- YTalk is in essence a multi-user chat program. It works almost exactly like
- the UNIX talk program and even communicates with the same talk daemon(s), but
- ***************
- *** 42,47 ****
- --- 42,49 ----
- .PP
- The -x option disables the X11 interface (described below).
- .PP
- + The -s option starts your YTalk window in a shell.
- + .PP
- For each user on the command line, YTalk will attempt to connect to the talk
- daemon on the specified user's host and determine if that user has left an
- invitation for you to call. If not, YTalk leaves an invitation for him
- ***************
- *** 307,318 ****
- .SH FUTURE WORK
- Work is being done on the following ideas:
- .sp
- - 1) private conversations which do not get interrupted
- .br
- ! or transmitted to all YTalk connections,
- .br
- ! 2) a dedicated YTalk daemon.
-
- .SH FILES
-
- /usr/local/etc/ytalkrc
- --- 309,321 ----
- .SH FUTURE WORK
- Work is being done on the following ideas:
- .sp
- .br
- ! 1) a dedicated YTalk daemon.
- .br
- ! 2) MBCS/NLS support.
- ! .br
-
- +
- .SH FILES
-
- /usr/local/etc/ytalkrc
- ***************
- *** 342,353 ****
- .PP
- Thanks to Magnus Hammerin for Solaris 2.* support.
- .PP
- Thanks to Jonas Yngvesson for aside messages in X.
- .PP
- Thanks to Andreas Stolcke for fixing the X resource database calls.
- .PP
- Thanks to John Vanderpool, Shih-Chen Huang, Andrew Myers, Duncan Sinclair,
- ! Evan McLean, and Larry Schwimmer for comments and ideas.
- .PP
- The README file shipped with ytalk gives detailed attributions.
-
- --- 345,361 ----
- .PP
- Thanks to Magnus Hammerin for Solaris 2.* support.
- .PP
- + Thanks to Thilo Wunderlich for Linux support.
- + .PP
- Thanks to Jonas Yngvesson for aside messages in X.
- .PP
- Thanks to Andreas Stolcke for fixing the X resource database calls.
- .PP
- + Thanks to Pete Wenzel for fixing the #elif directive.
- + .PP
- Thanks to John Vanderpool, Shih-Chen Huang, Andrew Myers, Duncan Sinclair,
- ! Evan McLean, Larry Schwimmer, J. Adam Hawkes, and Mark Musone for comments
- ! and ideas.
- .PP
- The README file shipped with ytalk gives detailed attributions.
-
- *** 3.0.1/header.h Tue Aug 24 16:42:58 1993
- --- header.h Fri Aug 27 13:49:21 1993
- ***************
- *** 17,23 ****
- /* Mail comments or questions to ytalk@austin.eds.com */
-
- #include <sys/types.h>
- ! #include <sys/param.h>
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <errno.h>
- --- 17,27 ----
- /* Mail comments or questions to ytalk@austin.eds.com */
-
- #include <sys/types.h>
- ! #ifdef LINUX
- ! # include <linux/param.h>
- ! #else
- ! # include <sys/param.h>
- ! #endif
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <errno.h>
- ***************
- *** 30,36 ****
-
- #define VMAJOR 3 /* major version number */
- #define VMINOR 0 /* minor version number */
- ! #define VPATCH 1 /* patch level */
-
- /* ---- YTalk protocols ---- */
-
- --- 34,40 ----
-
- #define VMAJOR 3 /* major version number */
- #define VMINOR 0 /* minor version number */
- ! #define VPATCH 2 /* patch level */
-
- /* ---- YTalk protocols ---- */
-
- *** 3.0.1/main.c Tue Aug 24 16:42:58 1993
- --- main.c Tue Nov 2 11:37:07 1993
- ***************
- *** 134,140 ****
- int argc;
- char **argv;
- {
- ! int xflg = 0;
- char *prog;
-
- /* check for a 64-bit mis-compile */
- --- 134,140 ----
- int argc;
- char **argv;
- {
- ! int xflg = 0, sflg = 0;
- char *prog;
-
- /* check for a 64-bit mis-compile */
- ***************
- *** 178,183 ****
- --- 178,188 ----
- xflg++; /* disable X from the command line */
- argv++, argc--;
- }
- + else if(strcmp(*argv, "-s") == 0)
- + {
- + sflg++; /* immediately start a shell */
- + argv++, argc--;
- + }
- else
- argc = 0; /* force a Usage error */
- }
- ***************
- *** 213,219 ****
- init_socket();
- for(; argc > 0; argc--, argv++)
- invite(*argv, 1);
- ! msg_term(me, "Waiting for connection...");
- main_loop();
- bail(YTE_SUCCESS);
-
- --- 218,227 ----
- init_socket();
- for(; argc > 0; argc--, argv++)
- invite(*argv, 1);
- ! if(sflg)
- ! execute(NULL);
- ! else
- ! msg_term(me, "Waiting for connection...");
- main_loop();
- bail(YTE_SUCCESS);
-
- *** 3.0.1/comm.c Tue Aug 24 16:42:58 1993
- --- comm.c Thu Nov 18 18:13:20 1993
- ***************
- *** 157,163 ****
- if((host_addr = get_host_addr(host)) == (ylong)-1)
- {
- errno = 0;
- ! sprintf(errstr, "unknown host: '%s'\n", host);
- show_error(errstr);
- show_error("port from ytalk V2.? failed");
- return;
- --- 157,163 ----
- if((host_addr = get_host_addr(host)) == (ylong)-1)
- {
- errno = 0;
- ! sprintf(errstr, "unknown host: '%s'", host);
- show_error(errstr);
- show_error("port from ytalk V2.? failed");
- return;
- ***************
- *** 748,756 ****
- return -1;
-
- errno = 0;
- ! if(send_dgram(user, ANNOUNCE) != 0)
- ! return -1;
- ! return 0;
- }
-
- /* ---- global functions ---- */
- --- 748,758 ----
- return -1;
-
- errno = 0;
- ! if((rc = send_dgram(user, ANNOUNCE)) == 0)
- ! return 0;
- ! if(rc == 4) /* mesg n (refusing messages) */
- ! return 1;
- ! return -1;
- }
-
- /* ---- global functions ---- */
- ***************
- *** 833,842 ****
- }
- (void)send_dgram(user, LEAVE_INVITE);
- user->last_invite = (ylong)time(NULL);
- ! if(send_announce && announce(user) < 0)
- {
- (void)send_dgram(user, DELETE_INVITE);
- ! sprintf(errstr, "%s not logged in", user->full_name);
- show_error(errstr);
- free_user(user);
- return;
- --- 835,847 ----
- }
- (void)send_dgram(user, LEAVE_INVITE);
- user->last_invite = (ylong)time(NULL);
- ! if(send_announce && (rc = announce(user)) != 0)
- {
- (void)send_dgram(user, DELETE_INVITE);
- ! if(rc > 0)
- ! sprintf(errstr, "%s refusing messages", user->full_name);
- ! else
- ! sprintf(errstr, "%s not logged in", user->full_name);
- show_error(errstr);
- free_user(user);
- return;
- ***************
- *** 853,859 ****
- ylong t;
- static char estr[80];
- static ylong last_auto = 0;
- ! int answer;
-
- t = (ylong)time(NULL);
-
- --- 858,864 ----
- ylong t;
- static char estr[80];
- static ylong last_auto = 0;
- ! int answer, rc;
-
- t = (ylong)time(NULL);
-
- ***************
- *** 884,893 ****
- if(answer == 'n')
- continue;
- }
- ! if(announce(u) < 0)
- {
- (void)send_dgram(u, DELETE_INVITE);
- ! sprintf(errstr, "%s not logged in", u->full_name);
- show_error(errstr);
- free_user(u);
- }
- --- 889,901 ----
- if(answer == 'n')
- continue;
- }
- ! if((rc = announce(u)) != 0)
- {
- (void)send_dgram(u, DELETE_INVITE);
- ! if(rc > 0)
- ! sprintf(errstr, "%s refusing messages", u->full_name);
- ! else
- ! sprintf(errstr, "%s not logged in", u->full_name);
- show_error(errstr);
- free_user(u);
- }
- *** 3.0.1/fd.c Tue Aug 24 16:42:58 1993
- --- fd.c Thu Aug 26 09:19:05 1993
- ***************
- *** 130,137 ****
-
- #if defined(SIGCHLD)
- signal(SIGCHLD, SIG_IGN);
- ! #elif defined(SIGCLD)
- signal(SIGCLD, SIG_IGN);
- #endif
-
- /* For housecleaning to occur every CLEAN_INTERVAL seconds, we make
- --- 130,139 ----
-
- #if defined(SIGCHLD)
- signal(SIGCHLD, SIG_IGN);
- ! #else
- ! # if defined(SIGCLD)
- signal(SIGCLD, SIG_IGN);
- + # endif
- #endif
-
- /* For housecleaning to occur every CLEAN_INTERVAL seconds, we make
- *** 3.0.1/exec.c Tue Aug 24 16:42:59 1993
- --- exec.c Fri Sep 17 18:21:58 1993
- ***************
- *** 55,60 ****
- --- 55,76 ----
- char *name;
- {
- register int pty, tty;
- + char *pty_dev = "/dev/ptc", *tt;
- + extern char *ttyname();
- +
- + /* first look for a SYSV-type pseudo device */
- +
- + if((pty = open(pty_dev, O_RDWR)) >= 0)
- + {
- + if((tt = ttyname(pty)) != NULL)
- + {
- + strcpy(name, tt);
- + return pty;
- + }
- + close(pty);
- + }
- +
- + /* scan Berkeley-style */
-
- strcpy(name, "/dev/ptyp0");
- while(access(name, 0) == 0)
- *** 3.0.1/socket.c Tue Aug 24 16:42:59 1993
- --- socket.c Sat Nov 20 23:09:26 1993
- ***************
- *** 653,659 ****
- --- 653,663 ----
- nmsg.addr = user->sock;
- nmsg.addr.sin_family = htons(AF_INET);
- if(sendit(addr, d) != 0)
- + {
- + if(type == AUTO_LOOK_UP || type == AUTO_DELETE)
- + strncpy(nmsg.l_name, me->user_name, NAME_SIZE);
- return -2;
- + }
-
- switch(type)
- {
- ***************
- *** 830,840 ****
- ylong addr;
- ylong inet_addr();
-
- if((host = (struct hostent *) gethostbyname(hostname)) != NULL)
- {
- if(host->h_length != sizeof(addr))
- {
- ! sprintf(errstr, "Bad IN addr: %s\n", hostname);
- show_error(errstr);
- return (ylong)-1;
- }
- --- 834,845 ----
- ylong addr;
- ylong inet_addr();
-
- + errno = 0;
- if((host = (struct hostent *) gethostbyname(hostname)) != NULL)
- {
- if(host->h_length != sizeof(addr))
- {
- ! sprintf(errstr, "Bad IN addr: %s", hostname);
- show_error(errstr);
- return (ylong)-1;
- }
- ***************
- *** 878,896 ****
-
- if((from_addr = get_host_addr(from_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'\n", from_id);
- show_error(errstr);
- return;
- }
- if((to_addr = get_host_addr(to_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'\n", to_id);
- show_error(errstr);
- return;
- }
- if((on_addr = get_host_addr(on_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'\n", on_id);
- show_error(errstr);
- return;
- }
- --- 883,901 ----
-
- if((from_addr = get_host_addr(from_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'", from_id);
- show_error(errstr);
- return;
- }
- if((to_addr = get_host_addr(to_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'", to_id);
- show_error(errstr);
- return;
- }
- if((on_addr = get_host_addr(on_id)) == (ylong)-1)
- {
- ! sprintf(errstr, "Unknown host: '%s'", on_id);
- show_error(errstr);
- return;
- }
- *** 3.0.1/user.c Tue Aug 24 16:42:59 1993
- --- user.c Thu Nov 18 18:13:48 1993
- ***************
- *** 195,201 ****
- }
- else if((addr = get_host_addr(hostname)) == (ylong)-1)
- {
- ! sprintf(errstr, "new_user: bad host: '%s'\n", hostname);
- show_error(errstr);
- return NULL;
- }
- --- 195,201 ----
- }
- else if((addr = get_host_addr(hostname)) == (ylong)-1)
- {
- ! sprintf(errstr, "new_user: bad host: '%s'", hostname);
- show_error(errstr);
- return NULL;
- }
- *** 3.0.1/term.c Tue Aug 24 16:42:59 1993
- --- term.c Fri Sep 17 17:37:03 1993
- ***************
- *** 17,24 ****
- /* Mail comments or questions to ytalk@austin.eds.com */
-
- #include "header.h"
- #ifdef USE_SGTTY
- - # include <sys/ioctl.h>
- # ifdef hpux
- # include <sys/bsdtty.h>
- # include <sgtty.h>
- --- 17,24 ----
- /* Mail comments or questions to ytalk@austin.eds.com */
-
- #include "header.h"
- + #include <sys/ioctl.h>
- #ifdef USE_SGTTY
- # ifdef hpux
- # include <sys/bsdtty.h>
- # include <sgtty.h>
- *** 3.0.1/cwin.c Tue Aug 24 16:42:59 1993
- --- cwin.c Fri Sep 17 17:32:38 1993
- ***************
- *** 433,436 ****
- --- 433,438 ----
- set_cooked_curses()
- {
- noraw();
- + crmode();
- + noecho();
- }
-