Return-Path: sun!ncsa.uiuc.edu!wsherman
Received: by objy27. (5.57/SMI-4.0)
	id AA07802; Thu, 15 Aug 91 12:30:06 -0700
Received: from sun.UUCP by objy.com (4.1/SMI-4.0)
	id AA25077; Thu, 15 Aug 91 12:24:00 PDT
Received: from Sun.COM (sun-barr.EBay.Sun.COM) by sun.Eng.Sun.COM (4.1/SMI-4.1)
	id AA25168; Thu, 15 Aug 91 11:31:11 PDT
Received: from shambhala.Berkeley.EDU by Sun.COM (4.1/SMI-4.1)
	id AA16595; Thu, 15 Aug 91 11:31:01 PDT
Received: by shambhala.Berkeley.EDU (5.57/1.41)
	id AA13475; Thu, 15 Aug 91 11:30:56 -0700
Received: by eros.Berkeley.EDU (5.57/1.41)
	id AA04978; Thu, 15 Aug 91 11:30:48 -0700
Received: from duchamp.ncsa.uiuc.edu by bardeen.ncsa.uiuc.edu with SMTP id AA05064
  (5.65a/IDA-1.4.2 for xrn@eros.berkeley.edu); Thu, 15 Aug 91 13:30:43 -0500
Return-Path: <wsherman@ncsa.uiuc.edu>
Received: by duchamp.ncsa.uiuc.edu (4.1/NCSA-4.1)
	id AA02135; Thu, 15 Aug 91 13:30:51 CDT
Date: Thu, 15 Aug 91 13:30:51 CDT
From: sun!ncsa.uiuc.edu!wsherman (William Sherman -Visualization)
Message-Id: <9108151830.AA02135@duchamp.ncsa.uiuc.edu>
To: ricks@berkeley.edu, xrn@eros.berkeley.edu
Subject: change to Xrn 6.17 alpha
Cc: wsherman@ncsa.uiuc.edu

I took it upon myself to reduce your TODO list of one of things I
suggested.  Namely, the display of the number of lost articles in
the newsgroup mode display window.  Included is a shar file containing
a README (called README.change1), and a context diff of internals.c
(called internals.cdiff).

In addition, I am providing to Makefiles for Silicon Graphics machines.
One is for machines running the current release of the OS (IRIX 3.3), the
other is for the version currently in beta test (and being used by my
site - IRIX 4.0).  These are both in the aforemented shar file.

I just realized, the MANIFEST is wrong.  I was originally going to send
the complete new internals.c, but it was too big, but I forgot to change
the MANIFEST.

------------------8<---------------->8-------------------
#!/bin/sh
# This is a shell archive (shar 3.32)
# made 08/15/1991 18:20 UTC by sherman@ux1.cso.uiuc.edu
# Source directory /mnt/grd-ofcsca/sherman/Xrn
#
# existing files WILL be overwritten
#
# This shar contains:
# length  mode       name
# ------ ---------- ------------------------------------------
#    363 -rw-r--r-- MANIFEST
#  11135 -rw-r--r-- Makefile.sgi3.3
#  11149 -rw-r--r-- Makefile.sgi4.0
#   1951 -rw-r--r-- README.change1
#   4704 -rw-r--r-- internals.cdiff
#
if touch 2>&1 | fgrep 'amc' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= MANIFEST ==============
echo "x - extracting MANIFEST (Text)"
sed 's/^X//' << 'SHAR_EOF' > MANIFEST &&
X
XManifest for SGI makefiles, and changes to internals.c
X
XMANIFEST		This file
XMakefile.sgi3.3		Makefile for Silicon Graphics machines running IRIX 3.3
XMakefile.sgi4.0		Makefile for Silicon Graphics machines running IRIX 4.0
Xinternals.c.new		a new internals.c for XRN 6.17 with lost articles count
Xinternals.cdiff		context diff between orignal and new internals.c
X
SHAR_EOF
$TOUCH -am 0815123591 MANIFEST &&
chmod 0644 MANIFEST ||
echo "restore of MANIFEST failed"
set `wc -c MANIFEST`;Wc_c=$1
if test "$Wc_c" != "363"; then
	echo original size 363, current size $Wc_c
fi
# ============= Makefile.sgi3.3 ==============
echo "x - extracting Makefile.sgi3.3 (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile.sgi3.3 &&
X# Makefile generated by imake - do not edit!
X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
X
X###########################################################################
X# Makefile generated from "Imake.tmpl" and </tmp/IIf.a00304>
X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
X#
X# Platform-specific parameters may be set in the appropriate .cf
X# configuration files.  Site-wide parameters may be set in the file
X# site.def.  Full rebuilds are recommended if any parameters are changed.
X#
X# If your C preprocessor doesn't define any unique symbols, you'll need
X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
X# "make Makefile", "make Makefiles", or "make World").
X#
X# If you absolutely can't get imake to work, you'll need to set the
X# variables at the top of each Makefile as well as the dependencies at the
X# bottom (makedepend will do this automatically).
X#
X
X###########################################################################
X# platform-specific configuration parameters - edit sgi.cf to change
X
XCRT1 = /usr/lib/crt1.o
XCRTN = /usr/lib/crtn.o
X
X###########################################################################
X# site-specific configuration parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
X
X        OPTIMIZER = -O2
X
X            SHELL = /bin/sh
X
X              TOP = .
X      CURRENT_DIR = .
X
X               AR = ar scq
X  BOOTSTRAPCFLAGS = "$(OPTIMIZER)"
X               CC = cc
X
X         COMPRESS = compress
X              CPP = /lib/cpp $(STD_CPP_DEFINES)
X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
X          INSTALL = bsdinst.sh
X               LD = ld
X             LINT = lint
X      LINTLIBFLAG = -o
X         LINTOPTS = -ax
X               LN = ln -s
X
X               MV = mv
X               CP = cp
X           RANLIB = /bin/true
X  RANLIBINSTFLAGS =
X               RM = rm -f
X  VENDOR_INCLUDES =
X     STD_INCLUDES =
X  STD_CPP_DEFINES = -DSYSV
X      STD_DEFINES = -DSYSV -DMALLOC_0_RETURNS_NULL
X EXTRA_LOAD_FLAGS =
X  EXTRA_LIBRARIES = -lsun -lmalloc -lc_s
X             TAGS = ctags
X
X    SHAREDCODEDEF = -DSHAREDCODE
X         SHLIBDEF = -DATTSHAREDLIB
X
X    PROTO_DEFINES = -DFUNCPROTO -DNARROWPROTO
X
X     INSTPGMFLAGS = -s
X
X     INSTBINFLAGS = -m 0755
X     INSTUIDFLAGS = -m 4755
X     INSTLIBFLAGS = -m 0664
X     INSTINCFLAGS = -m 0444
X     INSTMANFLAGS = -m 0444
X     INSTDATFLAGS = -m 0444
X    INSTKMEMFLAGS = -m 2755 -g sys
X
X          DESTDIR =
X
X     TOP_INCLUDES = -I$(INCROOT)
X
X      CDEBUGFLAGS = $(OPTIMIZER)
X        CCOPTIONS = -prototypes -float
X      COMPATFLAGS =
X
X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(VENDOR_INCLUDES)
X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
X   LDCOMBINEFLAGS = -r
X
X        MACROFILE = sgi.cf
X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
X
X    IMAKE_DEFINES =
X
X         IRULESRC = $(CONFIGDIR)
X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
X
X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
X			$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
X			$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
X
X###########################################################################
X# X Window System Build Parameters
X# $XConsortium: Project.tmpl,v 1.68 90/07/03 12:14:47 rws Exp $
X
X###########################################################################
X# X Window System make variables; this need to be coordinated with rules
X# $XConsortium: Project.tmpl,v 1.68 90/07/03 12:14:47 rws Exp $
X
X          PATHSEP = /
X        USRLIBDIR = $(DESTDIR)/usr/lib
X           BINDIR = $(DESTDIR)/usr/bin/X11
X          INCROOT = $(DESTDIR)/usr/include
X     BUILDINCROOT = $(TOP)
X      BUILDINCDIR = $(BUILDINCROOT)/X11
X      BUILDINCTOP = ..
X           INCDIR = $(INCROOT)/X11
X           ADMDIR = $(DESTDIR)/usr/adm
X           LIBDIR = $(USRLIBDIR)/X11
X        CONFIGDIR = $(LIBDIR)/config
X       LINTLIBDIR = $(USRLIBDIR)/lint
X
X          FONTDIR = $(LIBDIR)/fonts
X         XINITDIR = $(LIBDIR)/xinit
X           XDMDIR = $(LIBDIR)/xdm
X           AWMDIR = $(LIBDIR)/awm
X           TWMDIR = $(LIBDIR)/twm
X           GWMDIR = $(LIBDIR)/gwm
X          MANPATH = $(DESTDIR)/usr/man
X    MANSOURCEPATH = $(MANPATH)/man
X           MANDIR = $(MANSOURCEPATH)n
X        LIBMANDIR = $(MANSOURCEPATH)3
X      XAPPLOADDIR = $(LIBDIR)/app-defaults
X
X       FONTCFLAGS = -t
X
X     INSTAPPFLAGS = $(INSTDATFLAGS)
X
X            IMAKE = imake
X           DEPEND = makedepend
X              RGB = rgb
X
X            FONTC = bdftopcf
X
X        MKFONTDIR = mkfontdir
X
X        MKDIRHIER = mkdir -p
X
X        CONFIGSRC = $(TOP)/config
X        CLIENTSRC = $(TOP)/clients
X          DEMOSRC = $(TOP)/demos
X           LIBSRC = $(TOP)/lib
X
X          FONTSRC = $(TOP)/fonts.pcf
X
X       INCLUDESRC = $(TOP)/X11
X        SERVERSRC = $(TOP)/server
X          UTILSRC = $(TOP)/util
X        SCRIPTSRC = $(UTILSRC)/scripts
X       EXAMPLESRC = $(TOP)/examples
X       CONTRIBSRC = $(TOP)/../contrib
X           DOCSRC = $(TOP)/doc
X           RGBSRC = $(TOP)/rgb
X        DEPENDSRC = $(UTILSRC)/makedepend
X         IMAKESRC = $(CONFIGSRC)
X         XAUTHSRC = $(LIBSRC)/Xau
X          XLIBSRC = $(LIBSRC)/X
X           XMUSRC = $(LIBSRC)/Xmu
X       TOOLKITSRC = $(LIBSRC)/Xt
X       AWIDGETSRC = $(LIBSRC)/Xaw
X       OLDXLIBSRC = $(LIBSRC)/oldX
X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
X      BDFTOSNFSRC = $(FONTSRC)/tools/bdftosnf
X      BDFTOPCFSRC = $(FONTSRC)/tools/bdftopcf
X     MKFONTDIRSRC = $(FONTSRC)/tools/mkfontdir
X     EXTENSIONSRC = $(TOP)/extensions
X
X  DEPEXTENSIONLIB =  $(USRLIBDIR)/libXext.a
X     EXTENSIONLIB =   -lXext
X
X          DEPXLIB = $(DEPEXTENSIONLIB)  $(USRLIBDIR)/libX11.a
X             XLIB = $(EXTENSIONLIB)  -lX11
X
X      DEPXAUTHLIB =  $(USRLIBDIR)/libXau.a
X         XAUTHLIB =   -lXau
X
X        DEPXMULIB =  $(USRLIBDIR)/libXmu.a
X           XMULIB =   -lXmu
X
X       DEPOLDXLIB =  $(USRLIBDIR)/liboldX.a
X          OLDXLIB =   -loldX
X
X      DEPXTOOLLIB =  $(USRLIBDIR)/libXt.a
X         XTOOLLIB =  -lXt
X
X        DEPXAWLIB =  $(USRLIBDIR)/libXaw.a
X           XAWLIB =   -lXaw
X
X LINTEXTENSIONLIB =  $(LINTLIBDIR)/llib-lXext.ln
X         LINTXLIB =  $(LINTLIBDIR)/llib-lX11.ln
X          LINTXMU =  $(LINTLIBDIR)/llib-lXmu.ln
X        LINTXTOOL =  $(LINTLIBDIR)/llib-lXt.ln
X          LINTXAW =  $(LINTLIBDIR)/llib-lXaw.ln
X
X          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
X
X         DEPLIBS1 = $(DEPLIBS)
X         DEPLIBS2 = $(DEPLIBS)
X         DEPLIBS3 = $(DEPLIBS)
X
X###########################################################################
X# Imake rules for building libraries, programs, scripts, and data files
X# rules:  $XConsortium: Imake.rules,v 1.70 90/05/04 16:57:30 keith Exp $
X
X###########################################################################
X# start of Imakefile
X
X#
X# $Header: /wrld/mnt11/ricks/src/X/xrn/RCS/todo,v 1.1 91/12/04 11:34:20 ricks Exp $
X#
X# xrn - an X-based NNTP news reader
X#
X# Copyright (c) 1988, 1989, 1990, 1991, Ellen M. Sentovich and Rick L. Spickelmier.
X#
X# Permission to use, copy, modify, and distribute this software and its
X# documentation for any purpose and without fee is hereby granted, provided
X# that the above copyright notice appear in all copies and that both that
X# copyright notice and this permission notice appear in supporting
X# documentation, and that the name of the University of California not
X# be used in advertising or publicity pertaining to distribution of
X# the software without specific, written prior permission.  The University
X# of California makes no representations about the suitability of this
X# software for any purpose.  It is provided "as is" without express or
X# implied warranty.
X#
X# THE UNIVERSITY OF CALIFORNIA DISCLAIMS ALL WARRANTIES WITH REGARD TO
X# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
X# FITNESS, IN 0 EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR
X# ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
X#
X# Suggestions, comments, or improvements are welcome and should be
X# addressed to:
X#
X#   xrn@ic.berkeley.edu
X#   ..!ucbvax!ic!xrn
X#
X
XEXTRA_LOAD_FLAGS = -lPW
X
XLOCAL_LIBRARIES = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
XDEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
XAPPDEFAULTS = XRn
XMOTIFDEFINES =
X
XDEFINES = $(MOTIFDEFINES)
X
XPROGRAMS = xrn
X
XSRCS = avl.c buttons.c clientlib.c compose.c cursor.c dialogs.c \
X       refile.c mesg.c error_hnds.c newsrcfile.c resources.c    \
X       internals.c save.c server.c utils.c xmisc.c xrn.c        \
X       xthelper.c vprintf.c tempnam.c strstr.c strtok.c y.tab.c \
X       cancel.c
XOBJS = avl.o buttons.o clientlib.o compose.o cursor.o dialogs.o \
X       refile.o mesg.o error_hnds.o newsrcfile.o resources.o    \
X       internals.o save.o server.o utils.o xmisc.o xrn.o        \
X       xthelper.o vprintf.o tempnam.o strstr.o strtok.o y.tab.o \
X       cancel.o
X
Xall:: $(PROGRAMS)
X
Xdepend:: lex.yy.c y.tab.c
X
X        PROGRAM = $(PROGRAMS)
X
Xall:: $(PROGRAMS)
X
X$(PROGRAMS): $(OBJS) $(DEPLIBS)
X	 $(RM) $@ ; \
X	$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
X
Xinstall:: $(PROGRAMS)
X	$(INSTALL) -c $(INSTPGMFLAGS) $(INSTALLFLAGS) $(PROGRAMS) $(BINDIR)
X
Xinstall.man:: $(PROGRAMS).man
X	$(INSTALL) -c $(INSTMANFLAGS) $(PROGRAMS).man $(MANDIR)/$(PROGRAMS).n
X
Xdepend::
X	$(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
X
Xlint:
X	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
Xlint1:
X	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
X
Xclean::
X	$(RM) $(PROGRAM)
X
Xinstall:: $(APPDEFAULTS).ad
X	$(INSTALL) -c $(INSTAPPFLAGS) $(APPDEFAULTS).ad $(XAPPLOADDIR)/$(APPDEFAULTS)
X
Xlex.yy.c: newsrc.l
X	$(LEX) newsrc.l
Xy.tab.c: newsrc.y
X	$(YACC) newsrc.y
Xy.tab.o: lex.yy.c avl.h news.h newsrcfile.h utils.h
X
Xclean::
X	$(RM) y.tab.c lex.yy.c
X
X###########################################################################
X# common rules for all Makefiles - do not edit
X
Xemptyrule::
X
Xclean::
X	$(RM_CMD) \#*
X
XMakefile::
X	-@if [ -f Makefile ]; then \
X		echo "	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
X		$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
X	else : ; fi ; \
X	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
X
Xtags::
X	$(TAGS) -w *.[ch]
X	$(TAGS) -xw *.[ch] > TAGS
X
X###########################################################################
X# empty rules for directories that do not have SUBDIRS - do not edit
X
Xinstall::
X	@echo "install in $(CURRENT_DIR) done"
X
Xinstall.man::
X	@echo "install.man in $(CURRENT_DIR) done"
X
XMakefiles::
X
Xincludes::
X
X###########################################################################
X# dependencies generated by makedepend
X
SHAR_EOF
$TOUCH -am 0815122591 Makefile.sgi3.3 &&
chmod 0644 Makefile.sgi3.3 ||
echo "restore of Makefile.sgi3.3 failed"
set `wc -c Makefile.sgi3.3`;Wc_c=$1
if test "$Wc_c" != "11135"; then
	echo original size 11135, current size $Wc_c
fi
# ============= Makefile.sgi4.0 ==============
echo "x - extracting Makefile.sgi4.0 (Text)"
sed 's/^X//' << 'SHAR_EOF' > Makefile.sgi4.0 &&
X# Makefile generated by imake - do not edit!
X# $XConsortium: imake.c,v 1.51 89/12/12 12:37:30 jim Exp $
X
X###########################################################################
X# Makefile generated from "Imake.tmpl" and </tmp/IIf.a00304>
X# $XConsortium: Imake.tmpl,v 1.77 89/12/18 17:01:37 jim Exp $
X#
X# Platform-specific parameters may be set in the appropriate .cf
X# configuration files.  Site-wide parameters may be set in the file
X# site.def.  Full rebuilds are recommended if any parameters are changed.
X#
X# If your C preprocessor doesn't define any unique symbols, you'll need
X# to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
X# "make Makefile", "make Makefiles", or "make World").
X#
X# If you absolutely can't get imake to work, you'll need to set the
X# variables at the top of each Makefile as well as the dependencies at the
X# bottom (makedepend will do this automatically).
X#
X
X###########################################################################
X# platform-specific configuration parameters - edit sgi.cf to change
X
XCRT1 = /usr/lib/crt1.o
XCRTN = /usr/lib/crtn.o
X
X###########################################################################
X# site-specific configuration parameters - edit site.def to change
X
X# site:  $XConsortium: site.def,v 1.21 89/12/06 11:46:50 jim Exp $
X
X        OPTIMIZER = -O2
X
X            SHELL = /bin/sh
X
X              TOP = .
X      CURRENT_DIR = .
X
X               AR = ar scq
X  BOOTSTRAPCFLAGS = "$(OPTIMIZER)"
X               CC = cc
X
X         COMPRESS = compress
X              CPP = /lib/cpp $(STD_CPP_DEFINES)
X    PREPROCESSCMD = cc -E $(STD_CPP_DEFINES)
X          INSTALL = bsdinst.sh
X               LD = ld
X             LINT = lint
X      LINTLIBFLAG = -o
X         LINTOPTS = -ax
X               LN = ln -s
X
X               MV = mv
X               CP = cp
X           RANLIB = /bin/true
X  RANLIBINSTFLAGS =
X               RM = rm -f
X  VENDOR_INCLUDES =
X     STD_INCLUDES =
X  STD_CPP_DEFINES = -DSYSV
X      STD_DEFINES = -DSYSV -DMALLOC_0_RETURNS_NULL
X EXTRA_LOAD_FLAGS =
X  EXTRA_LIBRARIES = -lsun -lmalloc -lc_s
X             TAGS = ctags
X
X    SHAREDCODEDEF = -DSHAREDCODE
X         SHLIBDEF = -DATTSHAREDLIB
X
X    PROTO_DEFINES = -DFUNCPROTO -DNARROWPROTO
X
X     INSTPGMFLAGS = -s
X
X     INSTBINFLAGS = -m 0755
X     INSTUIDFLAGS = -m 4755
X     INSTLIBFLAGS = -m 0664
X     INSTINCFLAGS = -m 0444
X     INSTMANFLAGS = -m 0444
X     INSTDATFLAGS = -m 0444
X    INSTKMEMFLAGS = -m 2755 -g sys
X
X          DESTDIR =
X
X     TOP_INCLUDES = -I$(INCROOT)
X
X      CDEBUGFLAGS = $(OPTIMIZER)
X        CCOPTIONS = -prototypes -cckr -float
X      COMPATFLAGS =
X
X      ALLINCLUDES = $(STD_INCLUDES) $(TOP_INCLUDES) $(INCLUDES) $(EXTRA_INCLUDES) $(VENDOR_INCLUDES)
X       ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(DEFINES) $(COMPATFLAGS)
X           CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(ALLDEFINES)
X        LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES)
X           LDLIBS = $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
X        LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)
X   LDCOMBINEFLAGS = -r
X
X        MACROFILE = sgi.cf
X           RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
X
X    IMAKE_DEFINES =
X
X         IRULESRC = $(CONFIGDIR)
X        IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES)
X
X     ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/Imake.rules \
X			$(IRULESRC)/Project.tmpl $(IRULESRC)/site.def \
X			$(IRULESRC)/$(MACROFILE) $(EXTRA_ICONFIGFILES)
X
X###########################################################################
X# X Window System Build Parameters
X# $XConsortium: Project.tmpl,v 1.68 90/07/03 12:14:47 rws Exp $
X
X###########################################################################
X# X Window System make variables; this need to be coordinated with rules
X# $XConsortium: Project.tmpl,v 1.68 90/07/03 12:14:47 rws Exp $
X
X          PATHSEP = /
X        USRLIBDIR = $(DESTDIR)/usr/lib
X           BINDIR = $(DESTDIR)/usr/bin/X11
X          INCROOT = $(DESTDIR)/usr/include
X     BUILDINCROOT = $(TOP)
X      BUILDINCDIR = $(BUILDINCROOT)/X11
X      BUILDINCTOP = ..
X           INCDIR = $(INCROOT)/X11
X           ADMDIR = $(DESTDIR)/usr/adm
X           LIBDIR = $(USRLIBDIR)/X11
X        CONFIGDIR = $(LIBDIR)/config
X       LINTLIBDIR = $(USRLIBDIR)/lint
X
X          FONTDIR = $(LIBDIR)/fonts
X         XINITDIR = $(LIBDIR)/xinit
X           XDMDIR = $(LIBDIR)/xdm
X           AWMDIR = $(LIBDIR)/awm
X           TWMDIR = $(LIBDIR)/twm
X           GWMDIR = $(LIBDIR)/gwm
X          MANPATH = $(DESTDIR)/usr/man
X    MANSOURCEPATH = $(MANPATH)/man
X           MANDIR = $(MANSOURCEPATH)n
X        LIBMANDIR = $(MANSOURCEPATH)3
X      XAPPLOADDIR = $(LIBDIR)/app-defaults
X
X       FONTCFLAGS = -t
X
X     INSTAPPFLAGS = $(INSTDATFLAGS)
X
X            IMAKE = imake
X           DEPEND = makedepend
X              RGB = rgb
X
X            FONTC = bdftopcf
X
X        MKFONTDIR = mkfontdir
X
X        MKDIRHIER = mkdir -p
X
X        CONFIGSRC = $(TOP)/config
X        CLIENTSRC = $(TOP)/clients
X          DEMOSRC = $(TOP)/demos
X           LIBSRC = $(TOP)/lib
X
X          FONTSRC = $(TOP)/fonts.pcf
X
X       INCLUDESRC = $(TOP)/X11
X        SERVERSRC = $(TOP)/server
X          UTILSRC = $(TOP)/util
X        SCRIPTSRC = $(UTILSRC)/scripts
X       EXAMPLESRC = $(TOP)/examples
X       CONTRIBSRC = $(TOP)/../contrib
X           DOCSRC = $(TOP)/doc
X           RGBSRC = $(TOP)/rgb
X        DEPENDSRC = $(UTILSRC)/makedepend
X         IMAKESRC = $(CONFIGSRC)
X         XAUTHSRC = $(LIBSRC)/Xau
X          XLIBSRC = $(LIBSRC)/X
X           XMUSRC = $(LIBSRC)/Xmu
X       TOOLKITSRC = $(LIBSRC)/Xt
X       AWIDGETSRC = $(LIBSRC)/Xaw
X       OLDXLIBSRC = $(LIBSRC)/oldX
X      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
X      BDFTOSNFSRC = $(FONTSRC)/tools/bdftosnf
X      BDFTOPCFSRC = $(FONTSRC)/tools/bdftopcf
X     MKFONTDIRSRC = $(FONTSRC)/tools/mkfontdir
X     EXTENSIONSRC = $(TOP)/extensions
X
X  DEPEXTENSIONLIB =  $(USRLIBDIR)/libXext.a
X     EXTENSIONLIB =   -lXext
X
X          DEPXLIB = $(DEPEXTENSIONLIB)  $(USRLIBDIR)/libX11_s.a
X             XLIB = $(EXTENSIONLIB)  -lX11_s
X
X      DEPXAUTHLIB =  $(USRLIBDIR)/libXau.a
X         XAUTHLIB =   -lXau
X
X        DEPXMULIB =  $(USRLIBDIR)/libXmu.a
X           XMULIB =   -lXmu
X
X       DEPOLDXLIB =  $(USRLIBDIR)/liboldX.a
X          OLDXLIB =   -loldX
X
X      DEPXTOOLLIB =  $(USRLIBDIR)/libXt_s.a
X         XTOOLLIB =  -lXt_s
X
X        DEPXAWLIB =  $(USRLIBDIR)/libXaw.a
X           XAWLIB =   -lXaw
X
X LINTEXTENSIONLIB =  $(LINTLIBDIR)/llib-lXext.ln
X         LINTXLIB =  $(LINTLIBDIR)/llib-lX11.ln
X          LINTXMU =  $(LINTLIBDIR)/llib-lXmu.ln
X        LINTXTOOL =  $(LINTLIBDIR)/llib-lXt.ln
X          LINTXAW =  $(LINTLIBDIR)/llib-lXaw.ln
X
X          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
X
X         DEPLIBS1 = $(DEPLIBS)
X         DEPLIBS2 = $(DEPLIBS)
X         DEPLIBS3 = $(DEPLIBS)
X
X###########################################################################
X# Imake rules for building libraries, programs, scripts, and data files
X# rules:  $XConsortium: Imake.rules,v 1.70 90/05/04 16:57:30 keith Exp $
X
X###########################################################################
X# start of Imakefile
X
X#
X# $Header: /wrld/mnt11/ricks/src/X/xrn/RCS/todo,v 1.1 91/12/04 11:34:20 ricks Exp $
X#
X# xrn - an X-based NNTP news reader
X#
X# Copyright (c) 1988, 1989, 1990, 1991, Ellen M. Sentovich and Rick L. Spickelmier.
X#
X# Permission to use, copy, modify, and distribute this software and its
X# documentation for any purpose and without fee is hereby granted, provided
X# that the above copyright notice appear in all copies and that both that
X# copyright notice and this permission notice appear in supporting
X# documentation, and that the name of the University of California not
X# be used in advertising or publicity pertaining to distribution of
X# the software without specific, written prior permission.  The University
X# of California makes no representations about the suitability of this
X# software for any purpose.  It is provided "as is" without express or
X# implied warranty.
X#
X# THE UNIVERSITY OF CALIFORNIA DISCLAIMS ALL WARRANTIES WITH REGARD TO
X# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
X# FITNESS, IN 0 EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR
X# ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
X#
X# Suggestions, comments, or improvements are welcome and should be
X# addressed to:
X#
X#   xrn@ic.berkeley.edu
X#   ..!ucbvax!ic!xrn
X#
X
XEXTRA_LOAD_FLAGS = -lPW
X
XLOCAL_LIBRARIES = $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
XDEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
XAPPDEFAULTS = XRn
XMOTIFDEFINES =
X
XDEFINES = $(MOTIFDEFINES)
X
XPROGRAMS = xrn
X
XSRCS = avl.c buttons.c clientlib.c compose.c cursor.c dialogs.c \
X       refile.c mesg.c error_hnds.c newsrcfile.c resources.c    \
X       internals.c save.c server.c utils.c xmisc.c xrn.c        \
X       xthelper.c vprintf.c tempnam.c strstr.c strtok.c y.tab.c \
X       cancel.c
XOBJS = avl.o buttons.o clientlib.o compose.o cursor.o dialogs.o \
X       refile.o mesg.o error_hnds.o newsrcfile.o resources.o    \
X       internals.o save.o server.o utils.o xmisc.o xrn.o        \
X       xthelper.o vprintf.o tempnam.o strstr.o strtok.o y.tab.o \
X       cancel.o
X
Xall:: $(PROGRAMS)
X
Xdepend:: lex.yy.c y.tab.c
X
X        PROGRAM = $(PROGRAMS)
X
Xall:: $(PROGRAMS)
X
X$(PROGRAMS): $(OBJS) $(DEPLIBS)
X	 $(RM) $@ ; \
X	$(CC) -o $@ $(OBJS) $(LDOPTIONS) $(LOCAL_LIBRARIES) $(LDLIBS) $(EXTRA_LOAD_FLAGS)
X
Xinstall:: $(PROGRAMS)
X	$(INSTALL) -c $(INSTPGMFLAGS) $(INSTALLFLAGS) $(PROGRAMS) $(BINDIR)
X
Xinstall.man:: $(PROGRAMS).man
X	$(INSTALL) -c $(INSTMANFLAGS) $(PROGRAMS).man $(MANDIR)/$(PROGRAMS).n
X
Xdepend::
X	$(DEPEND) -s "# DO NOT DELETE" -- $(ALLDEFINES) -- $(SRCS)
X
Xlint:
X	$(LINT) $(LINTFLAGS) $(SRCS) $(LINTLIBS)
Xlint1:
X	$(LINT) $(LINTFLAGS) $(FILE) $(LINTLIBS)
X
Xclean::
X	$(RM) $(PROGRAM)
X
Xinstall:: $(APPDEFAULTS).ad
X	$(INSTALL) -c $(INSTAPPFLAGS) $(APPDEFAULTS).ad $(XAPPLOADDIR)/$(APPDEFAULTS)
X
Xlex.yy.c: newsrc.l
X	$(LEX) newsrc.l
Xy.tab.c: newsrc.y
X	$(YACC) newsrc.y
Xy.tab.o: lex.yy.c avl.h news.h newsrcfile.h utils.h
X
Xclean::
X	$(RM) y.tab.c lex.yy.c
X
X###########################################################################
X# common rules for all Makefiles - do not edit
X
Xemptyrule::
X
Xclean::
X	$(RM_CMD) \#*
X
XMakefile::
X	-@if [ -f Makefile ]; then \
X		echo "	$(RM) Makefile.bak; $(MV) Makefile Makefile.bak"; \
X		$(RM) Makefile.bak; $(MV) Makefile Makefile.bak; \
X	else : ; fi ; \
X	$(IMAKE_CMD) -DTOPDIR=$(TOP) -DCURDIR=$(CURRENT_DIR)
X
Xtags::
X	$(TAGS) -w *.[ch]
X	$(TAGS) -xw *.[ch] > TAGS
X
X###########################################################################
X# empty rules for directories that do not have SUBDIRS - do not edit
X
Xinstall::
X	@echo "install in $(CURRENT_DIR) done"
X
Xinstall.man::
X	@echo "install.man in $(CURRENT_DIR) done"
X
XMakefiles::
X
Xincludes::
X
X###########################################################################
X# dependencies generated by makedepend
X
SHAR_EOF
$TOUCH -am 0815122591 Makefile.sgi4.0 &&
chmod 0644 Makefile.sgi4.0 ||
echo "restore of Makefile.sgi4.0 failed"
set `wc -c Makefile.sgi4.0`;Wc_c=$1
if test "$Wc_c" != "11149"; then
	echo original size 11149, current size $Wc_c
fi
# ============= README.change1 ==============
echo "x - extracting README.change1 (Text)"
sed 's/^X//' << 'SHAR_EOF' > README.change1 &&
X
XThis change to XRN 6.17 alpha modifies the display of the upper window
Xwhile in newsgroup mode.  New information is provided that gives the
Xnumber of unread articles that are no longer available from the NNTP
Xserver.  To keep from reducing the amount of space given to the name
Xof the newsgroups, the lost article count occupies the same space as
Xthe old article count.  This is possible, due to the fact that there
Xboth numbers should never be simultaneously greater than zero.  I
Xtried having both displayed, but it didn't help readability, and
Xreduced the space for the newsgroup names.  A context diff of the
Xchanges are contained in the file internals.cdiff.
X
XTo effect this change, two subroutines were modified slightly, and
Xone new subroutine was created.  All are contained in the source
Xfile internals.c.  The new routine is called 'lostArticleCount', and
Xis similar in use to 'unreadArticleCount', and 'totalArticleCount'.
XIt is called only by 'unreadGroups', which is the routine that
Xcreates the strings giving the info about each unread group in the
Xnewsrc file.
X
XObviously, 'unreadGroups' is one of the two modified routines.  It
Xcalls the new routine to get a count of lost articles.  Then, if that
Xnumber is greater than zero, it is given rather than the count of
Xread, but still existant (old) articles.  The other change to this
Xroutine is the addition of code to delete the memory of the list of
Xread articles.  This was previously done in 'updateArticleArray'.
X
XThe changes to the other routine ('updateArticleArray'), were done
Xto leave intact the nglist element of the newsgroup structure.  In
Xthe original version, the memory for this data was deleted, after
Xbeing used (and modified).  Now, it is neither modified or deleted.
X
XAny change pertaining to the modification of the nglist element
Xof the newsgroup structure is surrounded by ifdef statements
Xbased on wether BSXX is defined.
X
X	Bill Sherman
X	wsherman@ncsa.uiuc.edu
X
SHAR_EOF
$TOUCH -am 0815132091 README.change1 &&
chmod 0644 README.change1 ||
echo "restore of README.change1 failed"
set `wc -c README.change1`;Wc_c=$1
if test "$Wc_c" != "1951"; then
	echo original size 1951, current size $Wc_c
fi
# ============= internals.cdiff ==============
echo "x - extracting internals.cdiff (Text)"
sed 's/^X//' << 'SHAR_EOF' > internals.cdiff &&
X*** internals.c.orig	Thu Aug 15 09:26:00 1991
X--- internals.c.new	Thu Aug 15 12:44:52 1991
X***************
X*** 448,453 ****
X--- 448,510 ----
X  }
X  
X  
X+ 
X+ int
X+ lostArticleCount(newsgroup)
X+ struct newsgroup *newsgroup;
X+ /*
X+  * accurately count the number of lost articles in a group
X+  *
X+  *   returns: the lost number of articles in the group
X+  */
X+ {
X+     int count;
X+   
X+     if (EMPTY_GROUP(newsgroup)) {
X+ 	return 0;
X+     }
X+     
X+     if ((newsgroup->first == 0) && (newsgroup->last == 0)) {
X+ 	return 0;
X+     }
X+     
X+     {
X+ 	register struct list	*item;
X+ 	register int		first;
X+ 
X+ 	if (!newsgroup->nglist) {
X+ 	    fprintf(stderr, "XRN error in `lostArticleCount': expecting nglist to be valid\n");
X+ 	    return -1;
X+ 	}
X+ 
X+ 	first = newsgroup->first;
X+ 
X+ 	count = first - 1;
X+ 	for (item = newsgroup->nglist; item != NIL(struct list); item = item->next) {
X+ 	    switch (item->type) {
X+ 		case SINGLE:
X+ 		if (item->contents.single < first) {
X+ 		    count--;
X+ 		}
X+ 		break;
X+ 		case RANGE:
X+ 		if (item->contents.range.start < first) {
X+ 		    if (item->contents.range.end < first) {
X+ 			count -= (item->contents.range.end - item->contents.range.start);
X+ 			count--;
X+ 		    } else {
X+ 			count -= (first - item->contents.range.start);
X+ 		    }
X+ 		}
X+ 		break;
X+ 	    }
X+ 	}
X+     }
X+ 
X+     return count;
X+ }
X+ 
X+ 
X  static void
X  setCurrentArticle(newsgroup)
X  struct newsgroup *newsgroup;
X***************
X*** 553,568 ****
X  	if (IS_SUBSCRIBED(newsgroup) &&
X  	   (((unread = unreadArticleCount(newsgroup)) > 0) || mode)) {
X  	    int total = totalArticleCount(newsgroup);
X! 	    (void) sprintf(dummy, "%6s %7s %-40s%5d article%s +%5d old",
X! 	                   (unread > 0 ? "Unread" : ""),
X! 	                   (total > 0 ? "news in" : ""),
X! 			   newsgroup->name, unread,
X! 			   ((unread != 1) ? "s" : " "),
X! 			   total-unread);
X  
X  	    ar[subscribedGroups++] = XtNewString(dummy);
X  	    bytes += strlen(dummy);
X  	}
X      }
X  
X      string = arrayToString(ar, subscribedGroups, bytes);
X--- 610,644 ----
X  	if (IS_SUBSCRIBED(newsgroup) &&
X  	   (((unread = unreadArticleCount(newsgroup)) > 0) || mode)) {
X  	    int total = totalArticleCount(newsgroup);
X! 	    int lost = lostArticleCount(newsgroup);
X! 	    /* There should never be both lost & old articles, so */
X! 	    /* give only one figure.                              */
X! 	    if (lost > 0) {
X! 		(void) sprintf(dummy, "%6s %7s %-40s%5d article%s -%5d lost",
X! 	                       (unread > 0 ? "Unread" : ""),
X! 	                       (total > 0 ? "news in" : ""),
X! 			       newsgroup->name, unread,
X! 			       ((unread != 1) ? "s" : " "),
X! 		    	       lost);
X! 	    } else {
X! 		(void) sprintf(dummy, "%6s %7s %-40s%5d article%s +%5d  old",
X! 	                       (unread > 0 ? "Unread" : ""),
X! 	                       (total > 0 ? "news in" : ""),
X! 			       newsgroup->name, unread,
X! 			       ((unread != 1) ? "s" : " "),
X! 			       total-unread);
X! 	    }
X  
X  	    ar[subscribedGroups++] = XtNewString(dummy);
X  	    bytes += strlen(dummy);
X  	}
X+ 
X+ #ifndef BSXX
X+ 	/* delete list of previously read articles (was in updateArticleArray) */
X+ 	lsDestroy(newsgroup->nglist);
X+ 	newsgroup->nglist = NIL(struct list);
X+ #endif
X+ 
X      }
X  
X      string = arrayToString(ar, subscribedGroups, bytes);
X***************
X*** 2138,2158 ****
X  		newsgroup->nglist = NIL(struct list);
X  		return;
X  	    }
X  	    if (item->contents.range.start < newsgroup->first) {
X  		item->contents.range.start = newsgroup->first;
X  	    }
X  	    
X  	    if (item->contents.range.end < newsgroup->first) {
X  		break;
X  	    }
X! 	    for (art = item->contents.range.start; art <= item->contents.range.end; art++) {
X  		newsgroup->articles[INDEX(art)].status = ART_CLEAR_READ;
X  	    }
X  	}
X      }
X  
X      lsDestroy(newsgroup->nglist);
X      newsgroup->nglist = NIL(struct list);
X      
X      return;
X  }
X--- 2214,2245 ----
X  		newsgroup->nglist = NIL(struct list);
X  		return;
X  	    }
X+ #ifdef BSXX
X+ 	    /* no longer alter the list of previously read articles */
X  	    if (item->contents.range.start < newsgroup->first) {
X  		item->contents.range.start = newsgroup->first;
X  	    }
X+ #endif
X  	    
X  	    if (item->contents.range.end < newsgroup->first) {
X  		break;
X  	    }
X! 
X! 	    art = item->contents.range.start;
X! 	    if (item->contents.range.start < newsgroup->first) {
X! 		art = newsgroup->first;
X! 	    }
X! 
X! 	    for ( ; art <= item->contents.range.end; art++) {
X  		newsgroup->articles[INDEX(art)].status = ART_CLEAR_READ;
X  	    }
X  	}
X      }
X  
X+ #ifdef BSXX
X      lsDestroy(newsgroup->nglist);
X      newsgroup->nglist = NIL(struct list);
X+ #endif
X      
X      return;
X  }
SHAR_EOF
$TOUCH -am 0815124791 internals.cdiff &&
chmod 0644 internals.cdiff ||
echo "restore of internals.cdiff failed"
set `wc -c internals.cdiff`;Wc_c=$1
if test "$Wc_c" != "4704"; then
	echo original size 4704, current size $Wc_c
fi
exit 0
Return-Path: sun!ncsa.uiuc.edu!wsherman
Received: by objy27. (5.57/SMI-4.0)
	id AA08436; Thu, 15 Aug 91 15:32:00 -0700
Received: from sun.UUCP by objy.com (4.1/SMI-4.0)
	id AA26479; Thu, 15 Aug 91 15:24:32 PDT
Received: from Sun.COM (sun-barr.EBay.Sun.COM) by sun.Eng.Sun.COM (4.1/SMI-4.1)
	id AA01857; Thu, 15 Aug 91 12:49:26 PDT
Received: from shambhala.Berkeley.EDU by Sun.COM (4.1/SMI-4.1)
	id AA02687; Thu, 15 Aug 91 12:49:21 PDT
Received: by shambhala.Berkeley.EDU (5.57/1.41)
	id AA13633; Thu, 15 Aug 91 12:49:15 -0700
Received: by eros.Berkeley.EDU (5.57/1.41)
	id AA06758; Thu, 15 Aug 91 12:49:11 -0700
Received: from duchamp.ncsa.uiuc.edu by bardeen.ncsa.uiuc.edu with SMTP id AA06387
  (5.65a/IDA-1.4.2 for xrn@eros.berkeley.edu); Thu, 15 Aug 91 14:49:08 -0500
Return-Path: <wsherman@ncsa.uiuc.edu>
Received: by duchamp.ncsa.uiuc.edu (4.1/NCSA-4.1)
	id AA02153; Thu, 15 Aug 91 14:49:17 CDT
Date: Thu, 15 Aug 91 14:49:17 CDT
From: sun!ncsa.uiuc.edu!wsherman (William Sherman -Visualization)
Message-Id: <9108151949.AA02153@duchamp.ncsa.uiuc.edu>
To: ricks@berkeley.edu, xrn@eros.berkeley.edu
Subject: Re: lost article count feature
Cc: wsherman@ncsa.uiuc.edu

After using the lost article count feature I added to Xrn 6.17 alpha,
I have a few comments.  After a rescan, the newsgroups are all updated,
and that means the calculation for lost articles is now based on the
updated newsgroup information, all calculations for lost articles return
zero.

A possible solution for this, is to add a new element to the newsgroup
structure - something I thought might have been necessary originally,
until I changed when the nglist was deleted.  By calculating the info
upon initially reading the .newsrc file, and storing it, the numbers
would be remembered for the entire session (until a particular group
was read).  This also means that the routine 'updateArticleArray' which
I changed, could be returned to its original code -- not that it should/
should not be.

Anyway, I didn't feel it was my place to modify the newsgroup structure,
but you may want to if you like the lost article count feature, and
think the info should remain until you read a group, or finish a session.

	Bill

