home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky de.comp.sources.os9:2 comp.os.os9:1544
- Path: sparky!uunet!cs.utexas.edu!sun-barr!news2me.EBay.Sun.COM!seven-up.East.Sun.COM!sungy!stasys!stasys!not-for-mail
- From: frank.kaefer@stasys.sta.sub.org (Frank Kaefer)
- Newsgroups: de.comp.sources.os9,comp.os.os9
- Subject: MNews Prerelease Part01/09
- Message-ID: <1hafd2INNpsi@stasys.sta.sub.org>
- Date: 23 Dec 92 19:41:22 GMT
- Sender: news@stasys.sta.sub.org
- Followup-To: de.comp.sources.d
- Organization: Stasys News Server, Starnberg, Germany
- Lines: 1667
- Approved: frank.kaefer@stasys.sta.sub.org (Frank Kaefer)
- NNTP-Posting-Host: stasys.sta.sub.org
-
- Submitted-by: Ulrich Dessauer <ud@Nightmare.ddt.sub.org>
- Archive-name: mnews/part01
-
- : ----- Cut here ----- Cut here ----- Cut here ----- Cut here -----
- : Use sh filename to extract shell archive
- : This shell archive contains following files:
- : 'MANIFEST 5347 bytes'
- : 'Copyright 663 bytes'
- : 'inst.prf 6163 bytes'
- : '8BIT (Directory)'
- : 'INEWS (Directory)'
- : 'LIB (Directory)'
- : 'LOCK (Directory)'
- : 'MAN (Directory)'
- : 'MISC (Directory)'
- : 'RNEWS (Directory)'
- : 'SBATCH (Directory)'
- : 'SH (Directory)'
- : 'config.h 6195 bytes'
- : 'news.h 2624 bytes'
- : 'patchlevel.h 52 bytes'
- : 'xc 315 bytes'
- : '8BIT/Makefile 400 bytes'
- : '8BIT/c8type.c 6247 bytes'
- : '8BIT/c8type.h 1416 bytes'
- : '8BIT/conv.c 3469 bytes'
- : '8BIT/inp.c 1516 bytes'
- : 'INEWS/Makefile 2889 bytes'
- :
- if test -f 'MANIFEST' ; then
- echo 'File MANIFEST already exists, overwriting it'
- del 'MANIFEST'
- fi
- echo Extracting \"'MANIFEST'\"
- sed "s/^X//" >'MANIFEST' <<'__END__OF__THIS__FILE__'
- XFilename Part Description
- X----------------------------------------------------
- XMANIFEST 1 This shipping list
- XCopyright 1 Copyright notice
- Xinst.prf 1 installation guide
- X8BIT 1 Library for 8 bit support
- XINEWS 1 The main news manager program
- XLIB 1 Example files
- XLOCK 1 Library for event locking
- XMAN 1 Manual pages
- XMISC 1 Some utilities
- XRNEWS 1 Receive news
- XSBATCH 1 Send batched news
- XSH 1 Shellscripts for sh
- Xconfig.h 1 Global configuration include file
- Xnews.h 1
- Xpatchlevel.h 1
- Xxc 1
- X8BIT/Makefile 1
- X8BIT/c8type.c 1
- X8BIT/c8type.h 1
- X8BIT/conv.c 1
- X8BIT/inp.c 1
- XINEWS/Makefile 1
- XINEWS/RELS 2
- XINEWS/achk.c 2
- XINEWS/adm.c 2
- XINEWS/alias.c 2
- XINEWS/app.c 2
- XINEWS/arc.c 2
- XINEWS/build.c 2
- XINEWS/ccan.c 2
- XINEWS/cchk.c 2
- XINEWS/cnew.c 2
- XINEWS/crct.c 2
- XINEWS/crm.c 2
- XINEWS/crth.c 2
- XINEWS/csme.c 3
- XINEWS/cssys.c 3
- XINEWS/csuu.c 3
- XINEWS/csver.c 3
- XINEWS/ctrl.c 3
- XINEWS/dbg.c 3
- XINEWS/ddst.c 3
- XINEWS/delh.c 3
- XINEWS/exp.c 3
- XINEWS/ext.h 3
- XINEWS/fcan.c 3
- XINEWS/ffrom.c 3
- XINEWS/ffup.c 3
- XINEWS/getd.c 3
- XINEWS/gfh.c 3
- XINEWS/ghead.c 3
- XINEWS/hact 3
- XINEWS/hash.c 3
- XINEWS/hist.h 3
- XINEWS/ihead.c 3
- XINEWS/inews.c 3
- XINEWS/inews.h 3
- XINEWS/inrd.c 4
- XINEWS/limit.c 4
- XINEWS/list.c 4
- XINEWS/mail.c 4
- XINEWS/makh.c 4
- XINEWS/mcan.c 4
- XINEWS/mhead.c 4
- XINEWS/mid.c 4
- XINEWS/misc.c 4
- XINEWS/mit.c 4
- XINEWS/oart.c 4
- XINEWS/ohist.c 4
- XINEWS/pargs.c 4
- XINEWS/pit.c 4
- XINEWS/pmail.c 4
- XINEWS/psys.c 5
- XINEWS/ract.c 5
- XINEWS/retr.c 5
- XINEWS/rhead.c 5
- XINEWS/rsat.c 5
- XINEWS/rsys.c 5
- XINEWS/sect.c 5
- XINEWS/shead.c 5
- XINEWS/sinfo.c 5
- XINEWS/sit.c 5
- XINEWS/spch.c 5
- XINEWS/store.c 5
- XINEWS/tsys.c 5
- XINEWS/uidummy.c 6
- XINEWS/unln.c 6
- XINEWS/wact.c 6
- XINEWS/wgrp.c 6
- XINEWS/wit.c 6
- XLIB/Active 6
- XLIB/Aliases 6
- XLIB/Archive 6
- XLIB/Checkgroups 6
- XLIB/Convtable 6
- XLIB/Distributions 6
- XLIB/Followup 6
- XLIB/Logfile 6
- XLIB/Sys 6
- XLIB/send_uuname 6
- XLOCK/Makefile 6
- XLOCK/lock.c 6
- XLOCK/lock.h 6
- XMAN/8bit.prf 6
- XMAN/Active.prf 6
- XMAN/Checkgroups.prf 6
- XMAN/Delold.prf 6
- XMAN/Distributions.prf 6
- XMAN/Followup.prf 6
- XMAN/Inews.prf 6
- XMAN/Manuals.t.Z.uu 6
- XMAN/News_in.prf 7
- XMAN/News_out.prf 7
- XMAN/Rnews.prf 7
- XMAN/Sbatch.prf 7
- XMAN/Sys.prf 7
- XMISC/Makefile 7
- XMISC/decode.c 7
- XMISC/delold.c 7
- XMISC/encode.c 7
- XMISC/news_in.c 7
- XMISC/news_out.c 7
- XMISC/nstat.c 7
- XMISC/rot13.c 7
- XMISC/unmap.c 7
- XRNEWS/Makefile 7
- XRNEWS/compr.c 7
- XRNEWS/compr7.c 8
- XRNEWS/conv.c 8
- XRNEWS/logit.c 8
- XRNEWS/mail.c 8
- XRNEWS/rnews.c 8
- XRNEWS/rnews.h 8
- XRNEWS/send.c 8
- XSBATCH/Makefile 8
- XSBATCH/batch.c 8
- XSBATCH/com.c 8
- XSBATCH/com7.c 8
- XSBATCH/conv.c 8
- XSBATCH/exec.c 8
- XSBATCH/file.c 8
- XSBATCH/none.c 8
- XSBATCH/sbatch.c 8
- XSBATCH/sbatch.h 9
- XSH/check.sh 9
- XSH/install.sh 9
- XSH/respool.sh 9
- __END__OF__THIS__FILE__
- if test -f 'Copyright' ; then
- echo 'File Copyright already exists, overwriting it'
- del 'Copyright'
- fi
- echo Extracting \"'Copyright'\"
- sed "s/^X//" >'Copyright' <<'__END__OF__THIS__FILE__'
- X ** ATTENTION **
- X
- X The whole package is copyrighted by
- X
- X Ulrich Dessauer
- X Kerschensteinerstr. 45
- X D-8034 Germering
- X
- X Your are allowed to copy and modify the source to your
- X wishes, but you aren't allowed to
- X a.) sell parts or the whole package, so no part of source,
- X documentation or other parts may be forwarded for profit.
- X b.) use this in an enviroment for which you charge the users.
- X c.) change the source and forward it without the original
- X d.) redistribute the package without this copyright notice.
- X e.) redistribute only parts of the package.
- X
- X If you want to use the package for something mentioned above
- X contact me for a special agreement.
- __END__OF__THIS__FILE__
- if test -f 'inst.prf' ; then
- echo 'File inst.prf already exists, overwriting it'
- del 'inst.prf'
- fi
- echo Extracting \"'inst.prf'\"
- sed "s/^X//" >'inst.prf' <<'__END__OF__THIS__FILE__'
- X.define rcs-log
- X$Log: inst.prf_v $
- XRevision 1.1 90/08/31 13:58:57 ud
- XInitial revision
- X
- XCopyright (C) 1989, 1990 by Ulrich Dessauer, Germering, Germany.
- X.en
- X.m1 0
- X.m2 0
- X.nopaging
- X.offset 5
- X.rightmargin 70
- X.ec \
- X.ce
- XMNews - pre 2. Release
- X
- X.ul
- X1. Copyright
- X
- X.in +3
- X.ti +2
- XThis package is copyrighted by Ulrich Dessauer, Germering, Germany.
- XYou may copy and redistribute this package in whole but only in source
- Xand this notice have to be included. If you made changes then you have
- Xto redistribute the original source as well. Everything else isn't
- Xpermitted by the athor; you must not sell the program for profit, you
- Xmust not use it in a commercial enviroment and everything else which
- Xisn't explicit allowed.
- X
- X.ti +2
- XThe programs
- X.bold
- Xencode
- Xand
- X.bold
- Xdecode
- Xaren't copyright by me, they are normally part of the BNews 2.11
- Xdistribution and are only included to be compatible with this news
- Xsystem.
- X.in -3
- X
- X.ul
- X2. Installing
- X
- X.in +3
- X.ti +2
- XBefore installing the software itself you have to edit your sysinfo
- Xdatabase and add some entry for the package:
- X.ce 2
- Xlck.sbatch,l
- Xlck.inews,l
- X
- X.ti +2
- XThe news package needs an own account to run under this uid. I advice
- Xto use an user `news' with a group `news'. Remember the uid and gid of
- Xthis account; All binaries and configuration files have to be owned by
- Xthis account (the file and on modules also the module).
- X
- X.ti +2
- XYou should have unshared the package and find some subdirectories. The
- Xdirectory where this paper can be found is now called the root directory
- Xof the package. You can find a file `config.h' there; please edit it and
- Xadapt it to your local system. This will be everywhere included where it
- Xwill be useful.
- X
- X.ti +2
- XThen go through all subdirectories and glance through the makefiles to
- Xplace the binaries to proper places. Now compile the whole stuff and
- Xcreate the necessary directories. On default these are
- X.ce 7
- X/h0/USR/LIB/NEWS
- X/h0/USR/LIB/NEWS/HISTORY
- X/h0/SPOOL/NEWS
- X/h0/SPOOL/BATCH
- X/h0/SPOOL/RNEWS
- Xand
- X/h0/SPOOL/TNEWS
- X
- X.ti +2
- XCopy the files found in the `LIB' directory to /h0/USR/LIB/NEWS and
- Xedit them to reflect your system. The format of the files are explained
- Xin the manual entries in the `MAN` subdirectory. (Don't forget to
- Xchange the owner of all these directories and files!)
- X
- X.ti +2
- XNow log in as `news' (or just make `su news') and execute the
- Xfollowing commands:
- X.ce 2
- Xinews -c=newgroup:control -v </nil
- Xinews -c=newgroup:junk -v </nil
- X
- X.ti +2
- XYou should then create (or get) a file called newsgroups where all
- Xnewsgroups are listen (one per line) which you like to have on your
- Xsystem. Execute the following command:
- X.ce
- Xinews -c=checkgroups -v <newsgroups
- X
- X.ti +2
- XNow you can find a mail in the mailbox of the news account. The body
- Xof the mail can be fed to `shell' to create all desired newsgroups.
- XEverything of the package should now be installed correct. If you have
- Xhad some problems have a short look in the logfile in `/h0/USR/LIB/NEWS'
- Xwhere some hints may be found.
- X
- X.ti +2
- XOr try the shellscript
- X.bold
- Xinstall.sh
- Xto do the whole thing for you. I am not sure if it really does everthing
- Xokay, but it is a handy way to do all theses steps by a program. To run
- Xthis script, use `sh', not `shell' or `csh'!
- X.in -3
- X
- X.ul
- X3. Setting up the System
- X
- X.in +3
- X.ti +2
- XFor a regular use you need to install some entries for cron. First
- Xallow the user `news' to use cron (vcron users have to add news as a
- Xmember of the group `cron' in /h0/SYS/groups). For UUCP you have to
- Xallow the command `rnews' to be executed by a remote machine. For every
- Xsystem you feed news to you have to start the `sbatch' program before
- Xthis system calls you (or you call it). This will collect all new
- Xarticles and batch them for the remote system. If you like to use
- Xcompressed sending you need the `compress' program (not the OS-9 one, a
- Xgood working version can be found on TOP disks).
- X
- X.ti +2
- XThe more news you receive the faster the available free space on your
- Xharddisk will be eaten. So you need to delete old articles from time to
- Xtime. This can be done by running `inews' with proper options (refer to
- Xthe manual for the exact syntax of expire).
- X
- X.ti +2
- XIf you like, you can run the shell-script
- X.bold
- Xcheck.sh
- Xto glance over your installation and see if everything will be okay.
- X.in -3
- X
- X.ul
- X4. Reading and Writing News
- X
- X.in +3
- X.ti +2
- XThere are already some ports of newsreader for OS-9. The `NN' has been
- Xported, `tass' has been ported and maybe a lot of other readers.
- X
- X.ti +2
- XIf you like to write your own newsreader you can use the predefined
- Xuser interface. For details refer to the source.
- X.in -3
- X
- X.ul
- X5. Internal
- X
- X.in +3
- X.ti +2
- XFirst of all, the programs `rnews' and `sbatch' had originally be
- Xwritten for receiving compressed news to forward them to the notes
- Xsystem. So the source style may differ from the inews program, but I
- Xhope it is still understandable.
- X
- X.ti +2
- XMNews stores the articles as single files in a directory tree matching
- Xthe newsgroup of the article. All articles are found under
- X/h0/SPOOL/NEWS. Some examples for filenames for some newsgroups (I asume
- Xas the current number for each group a one; this will be increased on
- Xevery new article in this group):
- X.ce 3
- Xsub.sources.os9 --> sub/sources/os9/1
- Xjunk --> junk/1
- Xcomp.lang.c++ --> comp/lang/c__/1
- X
- X.ti +2
- XThe filename converting takes only on creating the filenames
- Xthemselves place; the name of the newsgroup aren't changed. A feature of
- Xnews are so called `crosspostings'. On UNIX(tm) systems the article in
- Xtheses groups are linked together. OS-9 doesn't (officially) supports
- Xlinks so MNews writes the article itself in the first newsgroup and in
- Xall other newsgroup there is only the filename of the original article,
- Xprefixed by some (hopefully) unique characters. In this release hardlinks
- Xare also supported. To use hardlinks you must have a call
- X.bold
- Xlink()
- Xanywhere and link it to the inews program. Some versions of this function
- Xare available and you may include one into your `os9lib.l'.
- X
- X.ti +2
- XSo if you want to adapt some software which is running on *IX you have
- Xto change the accesses on the files in the lib-directory and on the
- Xarticles themselves.
- X
- X.ce
- XEnjoy Usenet on OSK!
- __END__OF__THIS__FILE__
- if test -d '8BIT' ; then
- echo 'Directory 8BIT already exists'
- else
- echo Make directory \"'8BIT'\"
- makdir '8BIT'
- fi
- if test -d 'INEWS' ; then
- echo 'Directory INEWS already exists'
- else
- echo Make directory \"'INEWS'\"
- makdir 'INEWS'
- fi
- if test -d 'LIB' ; then
- echo 'Directory LIB already exists'
- else
- echo Make directory \"'LIB'\"
- makdir 'LIB'
- fi
- if test -d 'LOCK' ; then
- echo 'Directory LOCK already exists'
- else
- echo Make directory \"'LOCK'\"
- makdir 'LOCK'
- fi
- if test -d 'MAN' ; then
- echo 'Directory MAN already exists'
- else
- echo Make directory \"'MAN'\"
- makdir 'MAN'
- fi
- if test -d 'MISC' ; then
- echo 'Directory MISC already exists'
- else
- echo Make directory \"'MISC'\"
- makdir 'MISC'
- fi
- if test -d 'RNEWS' ; then
- echo 'Directory RNEWS already exists'
- else
- echo Make directory \"'RNEWS'\"
- makdir 'RNEWS'
- fi
- if test -d 'SBATCH' ; then
- echo 'Directory SBATCH already exists'
- else
- echo Make directory \"'SBATCH'\"
- makdir 'SBATCH'
- fi
- if test -d 'SH' ; then
- echo 'Directory SH already exists'
- else
- echo Make directory \"'SH'\"
- makdir 'SH'
- fi
- if test -f 'config.h' ; then
- echo 'File config.h already exists, overwriting it'
- del 'config.h'
- fi
- echo Extracting \"'config.h'\"
- sed "s/^X//" >'config.h' <<'__END__OF__THIS__FILE__'
- X/*
- X * configuration header file for the mnews package
- X *
- X * $Log: config.h_v $
- X * Revision 1.2 91/05/21 17:12:51 ud
- X * Added defines for in memory operation (possibly a speedup if working on
- X * a harddisk) and for short message ids
- X *
- X * Revision 1.1 90/08/31 13:58:20 ud
- X * Initial revision
- X *
- X */
- X/*
- X * This is the default command to forward News to
- X * another system. The News Articles will be written
- X * on stdin of this program.
- X * (%G will be replaced by the grading character, %S by
- X * the system name)
- X */
- X/* # define MNEWS_TRANSPORT "uux -r - '%S!rnews'" /* */
- X# define MNEWS_TRANSPORT "uux -r -g%G - '%S!rnews'" /* */
- X
- X/*
- X * This directory contains the list of filenames of new
- X * articles (of ...) to be send to a remote system
- X */
- X# define MNEWS_BATCHDIR "/h0/SPOOL/BATCH"
- X
- X/*
- X * This is the `root' directory of the news hirarchy
- X */
- X# define MNEWS_NEWSDIR "/h0/SPOOL/NEWS"
- X
- X/*
- X * If rnews has problems when feeding an article to inews, it moves
- X * this article to a special directory; this is the path of this
- X * directory
- X */
- X# define MNEWS_RNEWS_SPOOLDIR "/h0/SPOOL/RNEWS"
- X
- X/*
- X * This is the full pathname of the logfile for rnews. It will
- X * only be written, if it already exists. To use it, touch this
- X * file
- X */
- X# define MNEWS_RNEWS_LOGFILE "/h0/SPOOL/UUCP/.LOG/rnews.log"
- X
- X/*
- X * in this directory are all config file for the news package
- X * (Active, Sys, etc.)
- X */
- X# define MNEWS_NEWSLIB "/h0/USR/LIB/NEWS"
- X
- X/*
- X * if the articles can't be inserted then store them temporarly
- X * in this temp.spooldir.
- X */
- X# define MNEWS_TSPOOLDIR "/h0/SPOOL/TNEWS"
- X
- X/*
- X * If you want to include your host including your
- X * hostdomain in the `Path:' field you should define
- X * this.
- X */
- X/* # define USE_FULLHOST /* */
- X
- X# ifdef USE_FULLHOST
- X/*
- X * If the full hostdomain should be used and no extra entry
- X * for the hostname then define this
- X */
- X/* # define USE_ONLY_FULLHOST /* */
- X# endif USE_FULLHOST
- X
- X/*
- X * If you don't allow dots in the distribution field then
- X * use this define (I received articles with the whole
- X * group as distribution, this makes no sense...)
- X */
- X# define NO_DOT_IN_DIST /* */
- X
- X/*
- X * If you like to have the sitename of your neighbor to be
- X * a default distribution then define this
- X */
- X# define ADD_SITENAME_AS_DISTRIBUTION /* */
- X
- X/*
- X * Headerlines may be split off to several lines,
- X * started with a whitespace. If you prefer to concat
- X * them to one line you should define this
- X */
- X/* # define CAT_LINES /* */
- X
- X/*
- X * If you want to have the group `control' in the sys entry
- X * for each system (as a default value), then define this
- X */
- X/* # define DEFAULT_CTRL /* */
- X
- X/*
- X * If you are creating a control message and want always
- X * to place the article in the group `control' too,
- X * define this
- X */
- X/* # define ALWAYS_CONTROL /* */
- X
- X/*
- X * If you like to automatically insert `world' as a distribution
- X * for every entry in the sys file, define this.
- X */
- X/* # define ALWAYS_DIST_WORLD /* */
- X
- X/*
- X * If you want to allow controlmessages like sendsys, version
- X * and uuname are executed for world distribution, define this
- X */
- X# define SEND_WORLD /* */
- X
- X/*
- X * If you don't want to have a group `junk' define this;
- X * you should know what happens, if you have this defined,
- X * so if you aren't sure, don't define this!
- X*/
- X/* # define NO_JUNK /* */
- X
- X/*
- X * If you want to insert a local Xref: line (used by some
- X * newsreaders) define this
- X */
- X# define USE_XREF /* */
- X
- X/*
- X * In several cases a mail is send to someone
- X * if you want that a copy of the mail is sent
- X * to the local postmaster define this
- X */
- X# define COPY_TO_POSTMASTER /* */
- X
- X/*
- X * If someone posts to a moderated group this article will
- X * be send as a mail to the moderator. To disable this feature
- X * define this
- X */
- X/* # define NO_MAIL_TO_MODERATOR /* */
- X
- X/*
- X * If you want to allow a user to forward a written article
- X * also as a mail, define this (you then also need to define
- X * the command to invoke the mailer):
- X */
- X# define CAN_MAIL /* */
- X# ifdef CAN_MAIL
- X# define MAILCMD "rmail"
- X# endif /* CAN_MAIL */
- X
- X/*
- X * If you want to execute a newgroup or a rmgroup control
- X * message automatically then define this here:
- X */
- X/* # define AUTO_NEWGROUP /* */
- X/* # define AUOT_RMGROUP /* */
- X
- X/*
- X * Define this if you want to store the history for newsarticle
- X * in a ndbm-file instead of single files
- X * To use dbm, you have to change the Makefile in INEWS. Add
- X * the dbm-Library and increase the -M=<val> value to ensure
- X * that there is enough stack for the dbm Routines (some NDBM
- X * versions are using variables with 1, 2 or 4 kBytes in
- X * local functions).
- X */
- X/* # define USE_NDBM /* */
- X
- X/*
- X * If you prefer a short message id then define this. The short
- X * message id _may_ cause some problems on systems which aren't
- X * fully RFC 1036 compatible.
- X */
- X/* # define SHORT_MSGID /* */
- X
- X/*
- X * If you want to speedup your system and you have enough
- X * memory to do all operations in memory, define this
- X */
- X# define IN_MEMORY /* */
- X
- X/*
- X * If you want to hold some files as datamodules in memory,
- X * define this (not yet supported).
- X */
- X# define FILES_IN_MEM /* */
- X
- X/*
- X * In some cases a hash search may be more effective than
- X * a line by line search. If you prefer this search method
- X * define this
- X */
- X# define HASH_SEARCH /* */
- X# ifdef HASH_SEARCH
- X/*
- X * These are the values for the hashtable size
- X * HASH_ACTIVE for the active file
- X */
- X# define HASH_ACTIVE 37
- X# endif /* HAS_SEARCH */
- X
- X/*
- X * Normally MNews uses the Sysinfo library for locking purpose.
- X * If you want to use events instead define this. This may cause
- X * problems if inews dies unconditional, but under normal
- X * conditions it's the better solution (IMHO). (currently un-
- X * tested!)
- X */
- X/* # define EVENT_LOCK /* */
- X
- X/*
- X * If you want to use "hard" links undefine this. Hardlinks aren't
- X * yet offical supported by Microware and the use of them
- X * !!!!! MAY DAMAGE YOUR DISK !!!!!
- X */
- X/* # define SOFT_LINKS /* */
- X
- X/*
- X * The directory to place temp.files
- X */
- X# define TEMPDIR "/dd/TMP"
- X
- X# ifndef OSK
- X/*
- X * This can only be defined on OSK to replace some routines by
- X * an assembler version to increase performance
- X */
- X# define USE_ASM /* */
- X# endif /* OSK */
- __END__OF__THIS__FILE__
- if test -f 'news.h' ; then
- echo 'File news.h already exists, overwriting it'
- del 'news.h'
- fi
- echo Extracting \"'news.h'\"
- sed "s/^X//" >'news.h' <<'__END__OF__THIS__FILE__'
- X/*
- X * General headerfile used by several parts of the
- X * whole distribution
- X *
- X * $Log: news.h_v $
- X * Revision 1.2 91/05/21 17:12:14 ud
- X * Added a struct to support in memory handling of the newssystem
- X *
- X * Revision 1.1 90/08/31 13:59:15 ud
- X * Initial revision
- X *
- X */
- Xextern char *malloc ();
- Xextern char *realloc ();
- Xextern int os9forkc ();
- X
- Xextern int errno;
- Xextern char **environ;
- X
- X# include "config.h"
- X
- X# define FATAL (1 << 1)
- X# define SIMPLE (1 << 0)
- X
- X# ifndef TRUE
- X# define TRUE 1
- X# define FALSE 0
- X# endif /* TRUE */
- X
- X# ifndef NULL
- X# define NULL 0
- X# endif /* NULL */
- X
- X# define BATCHHEAD "#! rnews"
- X# define BATCHLEN 8
- X# define COMHEAD "#! cunbatch"
- X# define COMLEN 11
- X# define COM7HEAD "#! c7unbatch"
- X# define COM7LEN 12
- X# define FREHEAD "#! funbatch"
- X# define FRELEN 11
- X# define FRE7HEAD "#! f7unbatch"
- X# define FRE7LEN 12
- X
- X# define NONE 0
- X# define BATCH 1
- X# define COM 2
- X# define COM7 3
- X# define FRE 4
- X# define FRE7 5
- X# define DEL_ART 6
- X
- X# define NEWSINPUT "newsinput"
- X# define INEWS "inews"
- X# define UNCOMPRESS "uncompress"
- X# define MELT "melt"
- X# define DECODE "decode"
- X
- X# define COMPRESS "compress"
- X# define FREEZE "freeze"
- X# define ENCODE "encode"
- X# define TRANSPORT "mnews.transport"
- X# define TRANSPORT_DFLT MNEWS_TRANSPORT
- X
- X# define BATCHDIR "MNEWS.BATCH"
- X# define DEF_BATCHDIR MNEWS_BATCHDIR
- X
- X# define NEWSDIR "MNEWS.DIR"
- X# define DEF_NEWSDIR MNEWS_NEWSDIR
- X# define LIBDIR "MNEWS.LIB"
- X# define DEF_LIBDIR MNEWS_NEWSLIB
- X
- X# define TSPOOLDIR "MNEWS.TSPOOL"
- X# define DEF_TSPOOLDIR MNEWS_TSPOOLDIR
- X
- X# define NEWS_OWNER "news"
- X
- X/*
- X * ID for "linked" Files (used by other programs, too)
- X */
- X# define LINK_ID "%(#)$ "
- X
- X/*
- X * Some macros for speedup
- X */
- X# define Streql(s,d) (((*(s)) == (*(d))) && (!strcmp ((s), (d))))
- X# define Strieql(s,d) ((tolower (*(s)) == tolower (*(d))) && (!_strccmp ((s), (d))))
- X# define Strcmp(s,d) (((*(s)) != (*(d))) || strcmp ((s), (d)))
- X# define Stricmp(s,d) ((tolower (*(s)) != tolower (*(d))) || _strccmp ((s), (d)))
- X
- X# define Strneql(s,d,n) (((*(s)) == (*(d))) && (!strncmp ((s), (d), (n))))
- X# define Strnieql(s,d,n) ((tolower (*(s)) == tolower (*(d))) && (!_strnccmp ((s), (d), (n))))
- X# define Strncmp(s,d,n) (((*(s)) != (*(d))) || strncmp ((s), (d), (n)))
- X# define Strnicmp(s,d,n) ((tolower (*(s)) != tolower (*(d))) || _strnccmp ((s), (d), (n)))
- X
- X# ifdef IN_MEMORY
- X/*
- X * We need an alternative for temp.files - so store them in this
- X * structure
- X */
- Xtypedef struct _list {
- X char *text;
- X int siz;
- X int len;
- X struct _list *next;
- X} list;
- X# endif /* IN_MEMORY */
- X
- X# ifdef HASH_SEARCH
- Xtypedef unsigned long hash_t;
- X# endif /* HASH_SEARCH */
- __END__OF__THIS__FILE__
- if test -f 'patchlevel.h' ; then
- echo 'File patchlevel.h already exists, overwriting it'
- del 'patchlevel.h'
- fi
- echo Extracting \"'patchlevel.h'\"
- sed "s/^X//" >'patchlevel.h' <<'__END__OF__THIS__FILE__'
- X/*
- X * Current patchlevel
- X */
- X# define PATCHLEVEL 0
- __END__OF__THIS__FILE__
- if test -f 'xc' ; then
- echo 'File xc already exists, overwriting it'
- del 'xc'
- fi
- echo Extracting \"'xc'\"
- sed "s/^X//" >'xc' <<'__END__OF__THIS__FILE__'
- X$ echo "Version: $Id: xc_v 1.1 90/08/31 13:59:38 ud Exp $"
- X$ echo "Copyright (C) 1989, 1990 by Ulrich Dessauer, Germering, Germany."
- X$ echo "Making rnews..."
- X$ chd RNEWS;make
- X$ echo "Making sbatch..."
- X$ chd SBATCH;make
- X$ echo "Making inews..."
- X$ chd INEWS;make
- X$ echo "Making MISC..."
- X$ chd MISC;make encode decode
- __END__OF__THIS__FILE__
- if test -f '8BIT/Makefile' ; then
- echo 'File 8BIT/Makefile already exists, overwriting it'
- del '8BIT/Makefile'
- fi
- echo Extracting \"'8BIT/Makefile'\"
- sed "s/^X//" >'8BIT/Makefile' <<'__END__OF__THIS__FILE__'
- X# $Log: Makefile_v $
- X# Revision 1.2 91/05/21 17:16:49 ud
- X# Add c8type.c
- X#
- X# Revision 1.1 90/08/31 13:47:17 ud
- X# Initial revision
- X#
- X#
- X# $Id: Makefile_v 1.2 91/05/21 17:16:49 ud Exp $
- X#
- XG= -g
- XCC= cc
- XCFLAGS= -qt=/dd/TMP -V=. $G
- XOBJS= inp.r conv.r c8type.r
- XHDRS= /dd/DEFS/c8type.h
- XLIBDIR= /dd/LIB
- X
- X$(LIBDIR)/8bit.l: $(OBJS) $(HDRS)
- X merge $(OBJS) >-$@
- X
- X$(HDRS): c8type.h
- X copy -r $? $@
- X touch $@
- __END__OF__THIS__FILE__
- if test -f '8BIT/c8type.c' ; then
- echo 'File 8BIT/c8type.c already exists, overwriting it'
- del '8BIT/c8type.c'
- fi
- echo Extracting \"'8BIT/c8type.c'\"
- sed "s/^X//" >'8BIT/c8type.c' <<'__END__OF__THIS__FILE__'
- X/*
- X * $Log: c8type.c_v $
- X * Revision 1.1 91/05/21 17:20:28 ud
- X * Initial revision
- X *
- X */
- X# ifndef LINT
- Xstatic char rcsid[] = "$Id: c8type.c_v 1.1 91/05/21 17:20:28 ud Exp $";
- X# endif LINE
- X# include "c8type.h"
- X
- Xchar8 _ch8codes[256] = {
- X _CONTROL, /* ^@ */
- X _CONTROL, /* ^A */
- X _CONTROL, /* ^B */
- X _CONTROL, /* ^C */
- X _CONTROL, /* ^D */
- X _CONTROL, /* ^E */
- X _CONTROL, /* ^F */
- X _CONTROL, /* ^G */
- X _CONTROL, /* ^H */
- X _CONTROL | _WHITE, /* ^I */
- X _CONTROL | _WHITE, /* ^J */
- X _CONTROL, /* ^K */
- X _CONTROL | _WHITE, /* ^L */
- X _CONTROL | _WHITE, /* ^M */
- X _CONTROL, /* ^N */
- X _CONTROL, /* ^O */
- X _CONTROL, /* ^P */
- X _CONTROL, /* ^Q */
- X _CONTROL, /* ^R */
- X _CONTROL, /* ^S */
- X _CONTROL, /* ^T */
- X _CONTROL, /* ^U */
- X _CONTROL, /* ^V */
- X _CONTROL, /* ^W */
- X _CONTROL, /* ^X */
- X _CONTROL, /* ^Y */
- X _CONTROL, /* ^Z */
- X _CONTROL, /* ^[ */
- X _CONTROL, /* ^\ */
- X _CONTROL, /* ^] */
- X _CONTROL, /* ^~ */
- X _CONTROL, /* ^_ */
- X _WHITE | _PUNCT, /* */
- X _PUNCT, /* ! */
- X _PUNCT, /* " */
- X _PUNCT, /* # */
- X _PUNCT, /* $ */
- X _PUNCT, /* % */
- X _PUNCT, /* & */
- X _PUNCT, /* ' */
- X _PUNCT, /* ( */
- X _PUNCT, /* ) */
- X _PUNCT, /* * */
- X _PUNCT, /* + */
- X _PUNCT, /* , */
- X _PUNCT, /* - */
- X _PUNCT, /* . */
- X _PUNCT, /* / */
- X _DIGIT | _HEXDIG, /* 0 */
- X _DIGIT | _HEXDIG, /* 1 */
- X _DIGIT | _HEXDIG, /* 2 */
- X _DIGIT | _HEXDIG, /* 3 */
- X _DIGIT | _HEXDIG, /* 4 */
- X _DIGIT | _HEXDIG, /* 5 */
- X _DIGIT | _HEXDIG, /* 6 */
- X _DIGIT | _HEXDIG, /* 7 */
- X _DIGIT | _HEXDIG, /* 8 */
- X _DIGIT | _HEXDIG, /* 9 */
- X _PUNCT, /* : */
- X _PUNCT, /* ; */
- X _PUNCT, /* < */
- X _PUNCT, /* = */
- X _PUNCT, /* > */
- X _PUNCT, /* ? */
- X _PUNCT, /* @ */
- X _UPPER | _HEXDIG, /* A */
- X _UPPER | _HEXDIG, /* B */
- X _UPPER | _HEXDIG, /* C */
- X _UPPER | _HEXDIG, /* D */
- X _UPPER | _HEXDIG, /* E */
- X _UPPER | _HEXDIG, /* F */
- X _UPPER, /* G */
- X _UPPER, /* H */
- X _UPPER, /* I */
- X _UPPER, /* J */
- X _UPPER, /* K */
- X _UPPER, /* L */
- X _UPPER, /* M */
- X _UPPER, /* N */
- X _UPPER, /* O */
- X _UPPER, /* P */
- X _UPPER, /* Q */
- X _UPPER, /* R */
- X _UPPER, /* S */
- X _UPPER, /* T */
- X _UPPER, /* U */
- X _UPPER, /* V */
- X _UPPER, /* W */
- X _UPPER, /* X */
- X _UPPER, /* Y */
- X _UPPER, /* Z */
- X _PUNCT, /* [ */
- X _PUNCT, /* \ */
- X _PUNCT, /* ] */
- X _PUNCT, /* ^ */
- X _PUNCT, /* _ */
- X _PUNCT, /* ` */
- X _LOWER | _HEXDIG, /* a */
- X _LOWER | _HEXDIG, /* b */
- X _LOWER | _HEXDIG, /* c */
- X _LOWER | _HEXDIG, /* d */
- X _LOWER | _HEXDIG, /* e */
- X _LOWER | _HEXDIG, /* f */
- X _LOWER, /* g */
- X _LOWER, /* h */
- X _LOWER, /* i */
- X _LOWER, /* j */
- X _LOWER, /* k */
- X _LOWER, /* l */
- X _LOWER, /* m */
- X _LOWER, /* n */
- X _LOWER, /* o */
- X _LOWER, /* p */
- X _LOWER, /* q */
- X _LOWER, /* r */
- X _LOWER, /* s */
- X _LOWER, /* t */
- X _LOWER, /* u */
- X _LOWER, /* v */
- X _LOWER, /* w */
- X _LOWER, /* x */
- X _LOWER, /* y */
- X _LOWER, /* z */
- X _PUNCT, /* { */
- X _PUNCT, /* | */
- X _PUNCT, /* } */
- X _PUNCT, /* ~ */
- X _CONTROL, /* ^? */
- X/* 8 bit */
- X _CONTROL, /* 80 */
- X _CONTROL, /* 81 */
- X _CONTROL, /* 82 */
- X _CONTROL, /* 83 */
- X _CONTROL, /* 84 */
- X _CONTROL, /* 85 */
- X _CONTROL, /* 86 */
- X _CONTROL, /* 87 */
- X _CONTROL, /* 88 */
- X _CONTROL, /* 89 */
- X _CONTROL, /* 8a */
- X _CONTROL, /* 8b */
- X _CONTROL, /* 8c */
- X _CONTROL, /* 8d */
- X _CONTROL, /* 8e */
- X _CONTROL, /* 8f */
- X _CONTROL, /* 90 */
- X _CONTROL, /* 91 */
- X _CONTROL, /* 92 */
- X _CONTROL, /* 93 */
- X _CONTROL, /* 94 */
- X _CONTROL, /* 95 */
- X _CONTROL, /* 96 */
- X _CONTROL, /* 97 */
- X _CONTROL, /* 98 */
- X _CONTROL, /* 99 */
- X _CONTROL, /* 9a */
- X _CONTROL, /* 9b */
- X _CONTROL, /* 9c */
- X _CONTROL, /* 9d */
- X _CONTROL, /* 9e */
- X _CONTROL, /* 9f */
- X _WHITE | _PUNCT, /* a0 */
- X _PUNCT, /* a1 */
- X _PUNCT, /* a2 */
- X _PUNCT, /* a3 */
- X _PUNCT, /* a4 */
- X _PUNCT, /* a5 */
- X _PUNCT, /* a6 */
- X _PUNCT, /* a7 */
- X _PUNCT, /* a8 */
- X _PUNCT, /* a9 */
- X _PUNCT, /* aa */
- X _PUNCT, /* ab */
- X _PUNCT, /* ac */
- X _PUNCT, /* ad */
- X _PUNCT, /* ae */
- X _PUNCT, /* af */
- X _PUNCT, /* b0 */
- X _PUNCT, /* b1 */
- X _PUNCT, /* b2 */
- X _PUNCT, /* b3 */
- X _PUNCT, /* b4 */
- X _LOWER, /* b5 */
- X _PUNCT, /* b6 */
- X _PUNCT, /* b7 */
- X _PUNCT, /* b8 */
- X _PUNCT, /* b9 */
- X _PUNCT, /* ba */
- X _PUNCT, /* bb */
- X _PUNCT, /* bc */
- X _PUNCT, /* bd */
- X _PUNCT, /* be */
- X _PUNCT, /* bf */
- X _UPPER, /* c0 */
- X _UPPER, /* c1 */
- X _UPPER, /* c2 */
- X _UPPER, /* c3 */
- X _UPPER, /* c4 */
- X _UPPER, /* c5 */
- X _UPPER, /* c6 */
- X _UPPER, /* c7 */
- X _UPPER, /* c8 */
- X _UPPER, /* c9 */
- X _UPPER, /* ca */
- X _UPPER, /* cb */
- X _UPPER, /* cc */
- X _UPPER, /* cd */
- X _UPPER, /* ce */
- X _UPPER, /* cf */
- X _UPPER, /* d0 */
- X _UPPER, /* d1 */
- X _UPPER, /* d2 */
- X _UPPER, /* d3 */
- X _UPPER, /* d4 */
- X _UPPER, /* d5 */
- X _UPPER, /* d6 */
- X _PUNCT, /* d7 */
- X _UPPER, /* d8 */
- X _UPPER, /* d9 */
- X _UPPER, /* da */
- X _UPPER, /* db */
- X _UPPER, /* dc */
- X _UPPER, /* dd */
- X _UPPER, /* de */
- X _UPPER, /* df */
- X _LOWER, /* e0 */
- X _LOWER, /* e1 */
- X _LOWER, /* e2 */
- X _LOWER, /* e3 */
- X _LOWER, /* e4 */
- X _LOWER, /* e5 */
- X _LOWER, /* e6 */
- X _LOWER, /* e7 */
- X _LOWER, /* e8 */
- X _LOWER, /* e9 */
- X _LOWER, /* ea */
- X _LOWER, /* eb */
- X _LOWER, /* ec */
- X _LOWER, /* ed */
- X _LOWER, /* ee */
- X _LOWER, /* ef */
- X _LOWER, /* f0 */
- X _LOWER, /* f1 */
- X _LOWER, /* f2 */
- X _LOWER, /* f3 */
- X _LOWER, /* f4 */
- X _LOWER, /* f5 */
- X _LOWER, /* f6 */
- X _PUNCT, /* f7 */
- X _LOWER, /* f8 */
- X _LOWER, /* f9 */
- X _LOWER, /* fa */
- X _LOWER, /* fb */
- X _LOWER, /* fc */
- X _LOWER, /* fd */
- X _LOWER, /* fe */
- X _LOWER /* ff */
- X};
- X
- Xchar8
- X_to8lower (c)
- Xregister char8 c;
- X{
- X return (is8upper (c) ? c | 0x20 : c);
- X}
- X
- Xchar8
- X_to8upper (c)
- Xregister char8 c;
- X{
- X return (is8lower (c) ? c & (~ 0x20) : c);
- X}
- X
- __END__OF__THIS__FILE__
- if test -f '8BIT/c8type.h' ; then
- echo 'File 8BIT/c8type.h already exists, overwriting it'
- del '8BIT/c8type.h'
- fi
- echo Extracting \"'8BIT/c8type.h'\"
- sed "s/^X//" >'8BIT/c8type.h' <<'__END__OF__THIS__FILE__'
- X/*
- X * $Log: c8type.h_v $
- X * Revision 1.1 91/05/21 17:20:02 ud
- X * Initial revision
- X *
- X */
- X# ifndef _C8TYPE_H
- X# define _C8TYPE_H
- X# ifndef isascii
- X# include <ctype.h>
- X# endif /* isascii */
- X
- Xtypedef unsigned char char8;
- X
- Xextern char8 _ch8codes[];
- X
- X# define is8ascii(c) (((char8) (c)) <= 0x7f)
- X# define is8alpha(c) (_ch8codes[(char8) (c)] & (_UPPER | _LOWER))
- X# define is8upper(c) (_ch8codes[(char8) (c)] & _UPPER)
- X# define is8lower(c) (_ch8codes[(char8) (c)] & _LOWER)
- X# define is8digit(c) (_ch8codes[(char8) (c)] & _DIGIT)
- X# define is8xdigit(c) (_ch8codes[(char8) (c)] & _HEXDIG)
- X# define is8space(c) (_ch8codes[(char8) (c)] & _WHITE)
- X# define is8punct(c) (_ch8codes[(char8) (c)] & _PUNCT)
- X# define is8alnum(c) (_ch8codes[(char8) (c)] & (_UPPER | _LOWER | _DIGIT))
- X# define is8print(c) (_ch8codes[(char8) (c)] & (_PUNCT | _UPPER | _LOWER | _DIGIT))
- X# define is8cntrl(c) (_ch8codes[(char8) (c)] & _CONTROL)
- X
- Xextern char8 _to8upper ();
- Xextern char8 _to8lower ();
- X
- X# define to8upper(c) _to8upper ((char8) (c))
- X# define to8lower(c) _to8lower ((char8) (c))
- X
- X/*
- X * conversion functions
- X */
- Xextern void setup_convtable ();
- Xextern void conv_charset ();
- Xextern char8 conv_char ();
- X
- X/*
- X * I/O functions with character conversion
- X */
- Xextern int c8read (), c8readln ();
- Xextern int c8write (), c8writeln ();
- Xextern char8 *c8fgets ();
- Xextern int c8fputs ();
- Xextern int c8getc ();
- Xextern int c8putc ();
- X
- X# endif /* _C8TYPE_H */
- __END__OF__THIS__FILE__
- if test -f '8BIT/conv.c' ; then
- echo 'File 8BIT/conv.c already exists, overwriting it'
- del '8BIT/conv.c'
- fi
- echo Extracting \"'8BIT/conv.c'\"
- sed "s/^X//" >'8BIT/conv.c' <<'__END__OF__THIS__FILE__'
- X/*
- X * this small library is used to convert between different
- X * international character sets into a unique (ISO 8859/1)
- X * one. See Manualpage for details.
- X *
- X * $Log: conv.c_v $
- X * Revision 1.2 91/05/21 17:14:46 ud
- X * Used my ctype for 8 bit access
- X *
- X * Revision 1.1 90/08/31 13:47:50 ud
- X * Initial revision
- X *
- X */
- X# ifndef LINT
- Xstatic char rcsid[] = "$Id: conv.c_v 1.2 91/05/21 17:14:46 ud Exp $";
- Xstatic char copyright[] = "Copyright (C) 1989, 1990 by Ulrich Dessauer, Germering, Germany.\n";
- X# endif /* LINT */
- X
- X# include <c8type.h>
- X# include <modes.h>
- X
- X# define TRUE 1
- X# define FALSE 0
- X
- X# define CHARSET_LIB "/h0/USR/LIB/CHARSET"
- X
- Xextern char *getenv ();
- Xextern char *malloc ();
- X
- Xstatic char ttab[256];
- Xstatic int doconv;
- X
- X/*
- X * Convert a string containing a number to any base up to 16
- X * to a decimal number
- X */
- Xstatic int
- Xconv_value (s, base)
- Xregister char *s;
- Xregister int base;
- X{
- X register int ret;
- X
- X ret = 0;
- X while (*s) {
- X ret *= base;
- X if (index ("0123456789", *s))
- X ret += (*s - '0');
- X else if (index ("ABCDEF", *s))
- X ret += (*s - 'A' + 10);
- X else if (index ("abcdef", *s))
- X ret += (*s - 'a' + 10);
- X ++s;
- X }
- X return (ret);
- X}
- X
- X/*
- X * parses an expression which represents a charcter between 0..255
- X */
- Xstatic int
- Xget_value (s)
- Xregister char *s;
- X{
- X int t;
- X
- X switch (*s++) {
- X default:
- X --s;
- X case '\'':
- X t = *s;
- X break;
- X case '$':
- X t = conv_value (s, 16);
- X break;
- X case '1': case '2': case '3': case '4': case '5':
- X case '6': case '7': case '8': case '9':
- X --s;
- X case '#':
- X t = conv_value (s, 10);
- X break;
- X case '0':
- X if (*s == 'x') {
- X ++s;
- X t = conv_value (s, 16);
- X } else
- X t = conv_value (s, 8);
- X break;
- X case '%':
- X t = conv_value (s, 2);
- X break;
- X }
- X t &= 0xff;
- X return (t);
- X}
- X
- X/*
- X * Reads in the translation table
- X */
- Xstatic int
- Xget_convtable (type, rev)
- Xchar *type;
- Xint rev;
- X{
- X char *buf;
- X int n;
- X int fd;
- X int in, out;
- X register char *pin, *pout;
- X
- X if (!(buf = malloc (256)))
- X return (FALSE);
- X if (!info_str ("CHARSET.LIB", buf, 200))
- X strcpy (buf, CHARSET_LIB);
- X strcat (buf, "/");
- X strcat (buf, type);
- X if ((fd = open (buf, S_IREAD)) != -1) {
- X while ((n = readln (fd, buf, 256)) > 0) {
- X buf[n - 1] = '\0';
- X if ((n == 1) || (buf[0] == '#'))
- X continue;
- X pin = buf;
- X pout = buf;
- X while (*pout && (!is8space (*pout)))
- X ++pout;
- X if (*pout) {
- X *pout++ = '\0';
- X while (is8space (*pout))
- X ++pout;
- X }
- X if (!*pout)
- X continue;
- X in = get_value (pin);
- X out = get_value (pout);
- X if ((in >= 0) && (in < 256) && (out >= 0) && (out < 256))
- X if (rev)
- X ttab[out] = (char) in;
- X else
- X ttab[in] = (char) out;
- X }
- X close (fd);
- X }
- X free (buf);
- X return (fd != -1);
- X}
- X
- X/*
- X * have to be called as one of the first functions in a program
- X * which uses the library
- X */
- Xvoid
- Xsetup_convtable (doit, rev)
- Xint doit;
- Xint rev;
- X{
- X register int t;
- X char *ptr;
- X
- X ptr = getenv ("CHARSET");
- X if ((!doit) || (!ptr)) {
- X doconv = FALSE;
- X return;
- X }
- X for (t = 0; t < 256; ++t)
- X ttab[t] = (char) t;
- X doconv = get_convtable (ptr, rev);
- X}
- X
- X/*
- X * this function converts a string using the stored
- X * translation table (siz is the length of the string
- X * to convert)
- X */
- Xvoid
- Xconv_charset (buf, siz)
- Xregister char8 *buf;
- Xregister int siz;
- X{
- X register char *_ttab;
- X
- X if (!doconv)
- X return;
- X _ttab = ttab;
- X while (siz-- > 0) {
- X *buf = _ttab[*buf];
- X ++buf;
- X }
- X}
- X
- X/*
- X * converts just one character
- X */
- Xchar8
- Xconv_char (c)
- Xchar8 c;
- X{
- X return (doconv ? ttab[c] : c);
- X}
- __END__OF__THIS__FILE__
- if test -f '8BIT/inp.c' ; then
- echo 'File 8BIT/inp.c already exists, overwriting it'
- del '8BIT/inp.c'
- fi
- echo Extracting \"'8BIT/inp.c'\"
- sed "s/^X//" >'8BIT/inp.c' <<'__END__OF__THIS__FILE__'
- X/*
- X * $Log$
- X *
- X */
- X# ifndef LINT
- Xstatic char rcsid[] = "$Id$";
- X# endif /* LINT */
- X
- X# include <stdio.h>
- X# include <c8type.h>
- X
- Xint
- Xc8read (fd, buf, cnt)
- Xregister int fd;
- Xregister char8 *buf;
- Xregister unsigned int cnt;
- X{
- X register int n;
- X
- X if ((n = read (fd, (char *) buf, cnt)) > 0)
- X conv_charset (buf, n);
- X return (n);
- X}
- X
- Xint
- Xc8readln (fd, buf, cnt)
- Xregister int fd;
- Xregister char8 *buf;
- Xregister unsigned int cnt;
- X{
- X register int n;
- X
- X if ((n = readln (fd, (char *) buf, cnt)) > 0)
- X conv_charset (buf, n);
- X return (n);
- X}
- X
- Xint
- Xc8write (fd, buf, cnt)
- Xregister int fd;
- Xregister char8 *buf;
- Xregister unsigned int cnt;
- X{
- X register int n;
- X
- X conv_charset (buf, cnt);
- X return (write (fd, (char *) buf, cnt));
- X}
- X
- Xint
- Xc8writeln (fd, buf, cnt)
- Xregister int fd;
- Xregister char8 *buf;
- Xregister unsigned int cnt;
- X{
- X register int n;
- X
- X conv_charset (buf, cnt);
- X return (writeln (fd, (char *) buf, cnt));
- X}
- X
- Xchar8 *
- Xc8fgets (buf, cnt, fp)
- Xregister char8 *buf;
- Xregister int cnt;
- Xregister FILE *fp;
- X{
- X if (fgets ((char *) buf, cnt, fp)) {
- X conv_charset (buf, strlen (buf));
- X return (buf);
- X }
- X return (NULL);
- X}
- X
- Xint
- Xc8fputs (buf, fp)
- Xregister char8 *buf;
- Xregister FILE *fp;
- X{
- X conv_charset (buf, strlen (buf));
- X return (fputs ((char *) buf, fp));
- X}
- X
- Xint
- Xc8getc (fp)
- Xregister FILE *fp;
- X{
- X register int ch;
- X
- X if ((ch = getc (fp)) >= 0)
- X return (conv_char (ch & 0xff) & 0xff);
- X return (ch);
- X}
- X
- Xint
- Xc8putc (ch, fp)
- Xregister int ch;
- Xregister FILE *fp;
- X{
- X register int ch;
- X
- X ch = conv_char (ch & 0xff) & 0xff;
- X return (putc (ch, fp));
- X}
- __END__OF__THIS__FILE__
- if test -f 'INEWS/Makefile' ; then
- echo 'File INEWS/Makefile already exists, overwriting it'
- del 'INEWS/Makefile'
- fi
- echo Extracting \"'INEWS/Makefile'\"
- sed "s/^X//" >'INEWS/Makefile' <<'__END__OF__THIS__FILE__'
- X# $Id: Makefile_v 1.4 91/09/11 18:16:06 ud Exp $
- X#
- X# $Log: Makefile_v $
- X# Revision 1.4 91/09/11 18:16:06 ud
- X# Added pmail.[cr]
- X#
- X# Revision 1.3 91/01/02 21:27:07 ud
- X# Added optional ndbm support
- X# Added optional profiling options
- X#
- X# Revision 1.2 90/12/01 15:50:22 ud
- X# Inserted two new files (adm.c and arc.c)
- X#
- X# Revision 1.1 90/08/31 15:05:15 ud
- X# Initial revision
- X#
- X#
- X# LIBDIR: where to find the converting library and (if desired) dbm-lib
- XLIBDIR= /dd/LIB
- X#
- X# If you use NDBM for history, then enter here the name of your library
- X# DBMLIB= -l=$(LIBDIR)/sdbm.l
- XDBMLIB=
- X#
- X# If you are using event locking use this library and include-directory
- X# EVLIB= -l=$(LIBDIR)/lock.l
- X# EVDIR= -v=../LOCK
- XEVLIB=
- XEVDIR=
- X#
- X# ODIR: where to place the binary
- XRDIR= RELS
- XODIR= /h0/ETC/CMDS
- XCC= cc
- XG= -g
- XCFLAGS= $G -qt=/dd/TMP -v=.. -v=../8BIT $(EVDIR)
- XLIBS= -l=/dd/LIB/os9lib.l -l=$(LIBDIR)/8bit.l \
- X $(DBMLIB) $(EVLIB)
- X#CURSES= -l=/dd/LIB/ncurses.l
- XCURSES= -l=.../MLIB/menulib.l -l=/dd/LIB/termlib.l
- XLFLAGS= $G -m=10 -q $(LIBS)
- X
- XREV= 1.7
- XSTATE= Exp
- XCI= ci -wud -u$(REV) -s$(STATE)
- X
- XSCTRL= ctrl.c ccan.c cnew.c crm.c cssys.c csuu.c csver.c cchk.c csme.c \
- X getd.c mcan.c
- XSUTIL= limit.c list.c store.c ohist.c oart.c dbg.c pmail.c gfh.c hash.c
- XSHEAD= delh.c ghead.c makh.c ihead.c mhead.c rhead.c shead.c spch.c app.c
- XSHEAD2= ddst.c alias.c
- XSACT= achk.c ract.c wact.c
- XSSYS= psys.c rsys.c tsys.c
- XSADM= adm.c arc.c build.c crct.c exp.c retr.c sect.c
- XSMISC= ffrom.c ffup.c mail.c mid.c misc.c sinfo.c unln.c rsat.c inrd.c
- XSINEWS= inews.c pargs.c wgrp.c wit.c sit.c pit.c crth.c
- X
- XINEWSSRC=$(SINEWS) $(SCTRL) $(SUTIL) $(SHEAD) $(SHEAD2) $(SACT) $(SSYS) \
- X $(SADM) $(SMISC)
- XIUSERSRC=uidummy.c
- XMNEWSSRC=$(SINEWS) $(SCTRL) $(SUTIL) $(SHEAD) $(SHEAD2) $(SACT) $(SSYS) \
- X $(SADM) $(SMISC)
- XMNEWSSRC=
- XHEADS= ext.h inews.h hist.h
- XFILES= $(INEWSSRC) $(HEADS) Makefile
- X
- XOCTRL= ctrl.r ccan.r cnew.r crm.r cssys.r csuu.r csver.r cchk.r csme.r \
- X getd.r mcan.r
- XOUTIL= limit.r list.r store.r ohist.r oart.r dbg.r pmail.r gfh.r hash.r
- XOHEAD= delh.r ghead.r makh.r ihead.r mhead.r rhead.r shead.r spch.r app.r
- XOHEAD2= ddst.r alias.r
- XOACT= achk.r ract.r wact.r
- XOSYS= psys.r rsys.r tsys.r
- XOADM= adm.r arc.r build.r crct.r exp.r retr.r sect.r
- XOMISC= ffrom.r ffup.r mail.r mid.r misc.r sinfo.r unln.r rsat.r inrd.r
- XOINEWS= inews.r pargs.r wgrp.r wit.r sit.r pit.r crth.r
- X
- XINEWS= $(OINEWS) $(OUTIL) $(OCTRL) $(OHEAD) $(OHEAD2) $(OACT) $(OSYS) \
- X $(OADM) $(OMISC)
- XIUSER= ../uidummy.r
- XMNEWS= $(OINEWS) $(OUTIL) $(OCTRL) $(OHEAD) $(OHEAD2) $(OACT) $(OSYS) \
- X $(OADM) $(OMISC)
- XMUSER=
- X
- X$(ODIR)/inews: $(INEWS) $(IUSER)
- X chd $(RDIR);$(CC) *.r $(IUSER) -f=$@ $(LFLAGS)
- X fixmod -uo2.39 -ua8002 $(ODIR)/inews
- X
- Xinews.r: inews.c inews.h
- X
- X$(IUSER): $(IUSERSRC)
- X $(CC) $(CFLAGS) -r=. $(IUSERSRC)
- X
- Xinews.tags:
- X ctags $(INEWSSRC)
- X
- Xmnews: $(MNEWS)
- X $(CC) $(MNEWS) $(MUSER) UI/*.r -f=mnews $(CURSES) $(LFLAGS)
- X
- Xrcs:
- X $(CI) $(FILES)
- __END__OF__THIS__FILE__
- exit 0
- : end of shell archive
-
- --
- Frank Kaefer # fkk@stasys.sta.sub.org # Starnberg, Germany
-