home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume42 / mbox / part11 < prev    next >
Encoding:
Internet Message Format  |  1994-03-29  |  92.5 KB

  1. From: Volker.Schuermann@unnet.wupper.de (Volker Schuermann)
  2. Newsgroups: comp.sources.misc
  3. Subject: v42i034:  mbox - ix/MBox BBS, v2.1, Part11/12
  4. Date: 29 Mar 1994 21:08:40 -0600
  5. Organization: THE UNDERGROUND NETWORK
  6. Sender: kent@sparky.sterling.com
  7. Approved: kent@sparky.sterling.com
  8. Message-ID: <2naqfo$it4@sparky.sterling.com>
  9. Reply-To: Volker Schuermann <Volker.Schuermann@unnet.wupper.de>
  10. X-Md4-Signature: 5660f501d99a6c942b759a82444d3e7d
  11.  
  12. Submitted-by: Volker.Schuermann@unnet.wupper.de (Volker Schuermann)
  13. Posting-number: Volume 42, Issue 34
  14. Archive-name: mbox/part11
  15. Environment: MINIX, ISC, ESIX, SVR3, LINUX, SVR4
  16. Supersedes: mbox: Volume 35, Issue 36-50
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then feed it
  20. # into a shell via "sh file" or similar.  To overwrite existing files,
  21. # type "sh file -c".
  22. # Contents:  mbox/INSTALL mbox/LANGUAGES mbox/contrib/README.addrpat
  23. #   mbox/contrib/addrpatch mbox/contrib/instpd.perl/README
  24. #   mbox/contrib/instpd.perl/instpd.pl mbox/contrib/instpic
  25. #   mbox/contrib/termcap.color mbox/contrib/wendy/Makefile
  26. #   mbox/contrib/wendy/echo.c mbox/contrib/wendy/getch.c
  27. #   mbox/contrib/wendy/wendy.h mbox/etc/alias.sh mbox/etc/ansi.help.U
  28. #   mbox/etc/ansi.intro.U mbox/etc/ansi.portinfo.U
  29. #   mbox/etc/ansi.sysinfo.U mbox/etc/ansi.users.U mbox/etc/inews.sh
  30. #   mbox/etc/list.editors mbox/etc/list.packers
  31. #   mbox/etc/list.terminals mbox/etc/rmail.sh mbox/etc/sysinfo.U
  32. #   mbox/src/CROSSREF mbox/src/HISTORY mbox/src/bled.doc
  33. #   mbox/src/control.c mbox/src/ctrlx.c mbox/src/dis.c
  34. #   mbox/src/dstock.c mbox/src/faces.c mbox/src/games.c
  35. #   mbox/src/getch.c mbox/src/help.c mbox/src/nerror.c
  36. #   mbox/src/patchlevel.h mbox/src/uptodate.c
  37. # Wrapped by kent@sparky on Thu Mar 24 21:48:37 1994
  38. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin:$PATH ; export PATH
  39. echo If this archive is complete, you will see the following message:
  40. echo '          "shar: End of archive 11 (of 12)."'
  41. if test -f 'mbox/INSTALL' -a "${1}" != "-c" ; then 
  42.   echo shar: Will not clobber existing file \"'mbox/INSTALL'\"
  43. else
  44.   echo shar: Extracting \"'mbox/INSTALL'\" \(1395 characters\)
  45.   sed "s/^X//" >'mbox/INSTALL' <<'END_OF_FILE'
  46. X#---------------------------------------------------------------------------
  47. X#
  48. X#                      ix/MBox  I N S T A L L
  49. X#             Bulletin Board System for UNIX(-Derivations)
  50. X#
  51. X#                          Volker Schuermann
  52. X#                     Wuppertal, FRG, 04.12.1993
  53. X#
  54. X#---------------------------------------------------------------------------
  55. X
  56. XFollow this to install the BBS for a first integrity check - afterwards,
  57. Xyou'll have to set up some files to make the BBS all *yours* ...
  58. X
  59. X    1. Set your uid to "root"
  60. X    
  61. X    2. Uudecode the parts of the package
  62. X
  63. X    3. Copy "mbox.tar.Z" to a new, empty directory -> MBOXHOME
  64. X       By default, "/local/mbox" is defined as MBOXHOME
  65. X
  66. X    4. Change directory to MBOXHOME
  67. X
  68. X    5. Uncompress and untar the package
  69. X
  70. X    6. Change directory to MBOXHOME/src
  71. X
  72. X    7. Edit "Makefile" to choose a compiler/system by 
  73. X           commenting out all others
  74. X
  75. X    8. Type "make english" to get the english version of the BBS
  76. X       Or "make francais", "make deutsch" for other languages
  77. X
  78. X    9. Type "make inst" to create all files & directories
  79. X
  80. XIf this ends successfully, you may be able to start "mbox". If so, the
  81. XBBS will install a users database depending on the default definitions
  82. Xin "mbox.h". You may restart the BBS now, to play around with it ...
  83. X
  84. XBetter way to go: Read the MBOXHOME/README, edit MBOXHOME/src/mbox.h
  85. Xand build your very own version of the BBS. Good luck!
  86. END_OF_FILE
  87.   if test 1395 -ne `wc -c <'mbox/INSTALL'`; then
  88.     echo shar: \"'mbox/INSTALL'\" unpacked with wrong size!
  89.   fi
  90.   # end of 'mbox/INSTALL'
  91. fi
  92. if test -f 'mbox/LANGUAGES' -a "${1}" != "-c" ; then 
  93.   echo shar: Will not clobber existing file \"'mbox/LANGUAGES'\"
  94. else
  95.   echo shar: Extracting \"'mbox/LANGUAGES'\" \(1510 characters\)
  96.   sed "s/^X//" >'mbox/LANGUAGES' <<'END_OF_FILE'
  97. XYOU (!) want to have an ix/MBox version talking your countries language?
  98. X
  99. XNo problem! You just have to do the following:
  100. X
  101. X    - move to "./src/languages"
  102. X    - type "cp english.cmd xxxx.cmd"
  103. X    - type "cp english.hlp xxxx.hlp"
  104. X    - type "cp english.shh xxxx.shh"
  105. X    - type "cp english.msg xxxx.msg"
  106. X
  107. XThe "xxxx" of course stands for your languages name!
  108. X
  109. XFirst of all you should edit "xxxx.msg". This file includes nearly
  110. Xall messages of the ix/MBox. Just translate all the lines - be aware that
  111. Xsome output lines have been split into several definitions. You have to leave
  112. Xthose structures unchanged (but translated, of course).
  113. X
  114. XAfter that you have to make up your command set. Edit "xxxx.cmd" - this job
  115. Xis not as easy as it seems, cause you have to mind the alphabetical order of
  116. Xthe various items! (Cd, CHat, Dir, DIalog ...)
  117. X                    ^   ^^    ^    ^^
  118. XThe helpfiles "xxxx.hlp" and "xxxx.shh" are quite simple to build. Print out
  119. Xyour "xxxx.cmd" and then "english.shh" file (for the arguments/options of the
  120. Xvarious commands). You can follow the "xxxx.cdm" list as a flow charts ...
  121. X
  122. X
  123. XNow you should append an entry for your language to the Makefile. Just copy
  124. Xthe "english:;" block (about 17 lines) to something like "xxxx:;". Substitute
  125. Xevery "english" pattern to "xxxx". Now you can type "make xxxx" and you will
  126. Xget an ix/MBox version for your language ...
  127. X
  128. X
  129. XIt would be very much appreciated if you'd send your language files to me so
  130. Xthat I can make them part of the next ix/MBox distribution. Thanx!
  131. END_OF_FILE
  132.   if test 1510 -ne `wc -c <'mbox/LANGUAGES'`; then
  133.     echo shar: \"'mbox/LANGUAGES'\" unpacked with wrong size!
  134.   fi
  135.   # end of 'mbox/LANGUAGES'
  136. fi
  137. if test -f 'mbox/contrib/README.addrpat' -a "${1}" != "-c" ; then 
  138.   echo shar: Will not clobber existing file \"'mbox/contrib/README.addrpat'\"
  139. else
  140.   echo shar: Extracting \"'mbox/contrib/README.addrpat'\" \(971 characters\)
  141.   sed "s/^X//" >'mbox/contrib/README.addrpat' <<'END_OF_FILE'
  142. XREADME.addrpatch // ix/MBox BBS 2.0 PL10r1 // 04.12.1993
  143. X
  144. X:From unnet.w.open.DE !Volker.Schuermann Thu, 18 Jun 92 11:04:24 remote from unnet
  145. X:     ^^^^^^^^^^^^^^^^^
  146. X:From: unnet!Volker.Schuermann@unnet.w.open.DE (Volker Schuermann)
  147. X:      ^^^^^^
  148. X:Received: by unnet.w.open.DE (UMAIL 3.45/UNIX) with UUCP;
  149. X:          id AA4063; Thu, 18 Jun 92 11:04:24 CET
  150. X
  151. X
  152. XIf your ix/MBox BBS produces such kind of headers you have to work with
  153. Xaddrpatch!
  154. X
  155. X:CURDIR=`pwd`
  156. X:
  157. X:cd /usr/spool/uucp
  158. X:
  159. X:for i in D.unnet*
  160. X:           ^^^^^
  161. X:    do    
  162. X:        echo -n $i' ... '
  163. X:        sed '/From unnet.w.open.DE !/s//From /g' < $i > SED.TMP
  164. X:                          ^^^^^^^^^^^^^^^^^
  165. X:        sed '/From: unnet!/s//From: /g' < SED.TMP > $i
  166. X:                           ^^^^^^
  167. X:        echo 'patched.'
  168. X:    done
  169. X:
  170. X:rm SED.TMP
  171. X:
  172. X:cd $CURDIR
  173. X
  174. XYou have to substitute 'unnet' and 'unnet.w.open.DE' by your sites name
  175. Xand your domain address. After you've done that, start addrpatch before
  176. Xyou start any UUCP polling activities.
  177. X
  178. END_OF_FILE
  179.   if test 971 -ne `wc -c <'mbox/contrib/README.addrpat'`; then
  180.     echo shar: \"'mbox/contrib/README.addrpat'\" unpacked with wrong size!
  181.   fi
  182.   # end of 'mbox/contrib/README.addrpat'
  183. fi
  184. if test -f 'mbox/contrib/addrpatch' -a "${1}" != "-c" ; then 
  185.   echo shar: Will not clobber existing file \"'mbox/contrib/addrpatch'\"
  186. else
  187.   echo shar: Extracting \"'mbox/contrib/addrpatch'\" \(232 characters\)
  188.   sed "s/^X//" >'mbox/contrib/addrpatch' <<'END_OF_FILE'
  189. XCURDIR=`pwd`
  190. X
  191. Xcd /usr/spool/uucp
  192. X
  193. Xfor i in D.unnet*
  194. X    do    
  195. X        echo -n $i' ... '
  196. X        sed '/From unnet.w.open.DE !/s//From /g' < $i > SED.TMP
  197. X        sed '/From: unnet!/s//From: /g' < SED.TMP > $i
  198. X        echo 'patched.'
  199. X    done
  200. X
  201. Xrm SED.TMP
  202. X
  203. Xcd $CURDIR
  204. END_OF_FILE
  205.   if test 232 -ne `wc -c <'mbox/contrib/addrpatch'`; then
  206.     echo shar: \"'mbox/contrib/addrpatch'\" unpacked with wrong size!
  207.   fi
  208.   chmod +x 'mbox/contrib/addrpatch'
  209.   # end of 'mbox/contrib/addrpatch'
  210. fi
  211. if test -f 'mbox/contrib/instpd.perl/README' -a "${1}" != "-c" ; then 
  212.   echo shar: Will not clobber existing file \"'mbox/contrib/instpd.perl/README'\"
  213. else
  214.   echo shar: Extracting \"'mbox/contrib/instpd.perl/README'\" \(971 characters\)
  215.   sed "s/^X//" >'mbox/contrib/instpd.perl/README' <<'END_OF_FILE'
  216. XREADME // instpd.pl for ix/MBox BBS 1.6 PL10j7 // 28.04.1993
  217. X
  218. XThe script instpd might be used to build pd/freeware-groups for the
  219. Xix/MBox. 
  220. X
  221. XThe original shell-script instpd wasn't able to handle the 'Keywords:'
  222. X-headerline. i have written a small perl-script to fix this problem.
  223. X
  224. XAll you need to do is to create a description file which contains one line
  225. Xper existing file with the following syntax:
  226. X<filename> <description>
  227. XThe script is started with the pd-groupname and the directory where the
  228. Xfiles are stored as parameters:
  229. X
  230. Xperl instpd.pl local.pd.xxx /public/xxx
  231. X
  232. XNOTE: You have to edit the instpd-file before you can use it ...
  233. X
  234. X-------------------------------------------------------------------------------
  235. Xjuergen
  236. X _____ _ _ _ _____
  237. X|___  | | | |  _  \  Juergen Waibel              Mail....: waibel@jwd.swb.de
  238. X|   | | | | | |_| |  Alter Muehlenweg 60         Phone...: +49-231-129652
  239. X|_____|_jwd_|_____/  D-4600 Dortmund 1           Fax/Data: +49-231-129454
  240. END_OF_FILE
  241.   if test 971 -ne `wc -c <'mbox/contrib/instpd.perl/README'`; then
  242.     echo shar: \"'mbox/contrib/instpd.perl/README'\" unpacked with wrong size!
  243.   fi
  244.   # end of 'mbox/contrib/instpd.perl/README'
  245. fi
  246. if test -f 'mbox/contrib/instpd.perl/instpd.pl' -a "${1}" != "-c" ; then 
  247.   echo shar: Will not clobber existing file \"'mbox/contrib/instpd.perl/instpd.pl'\"
  248. else
  249.   echo shar: Extracting \"'mbox/contrib/instpd.perl/instpd.pl'\" \(2766 characters\)
  250.   sed "s/^X//" >'mbox/contrib/instpd.perl/instpd.pl' <<'END_OF_FILE'
  251. X#!/usr/bin/perl
  252. X#
  253. X#
  254. X# instpd.pl - generate an article for every file in a given archive.
  255. X#          the article is build for a seleced newsgroup and it contains
  256. X#             a description, taken from a 4dos-like descript.ion file.
  257. X#
  258. X# modification log:
  259. X#    28-Apr-93 - juergen waibel - original
  260. X#
  261. X#
  262. X#------------- variables to be used -----------------------------------------
  263. X#
  264. X$NEWSCMD="/usr/local/lib/news/inews -h";     # command to use
  265. X$DESCRIPTION="descript.ion";            # name of the description file
  266. X$TEMPFILE="/home/bbs/article.tmp";        # name of temp. article File
  267. X#
  268. X#------------- get the given parameters -------------------------------------
  269. X#
  270. X$NEWSGROUP = $ARGV[0];                # newsgroup
  271. X$ARCHIVE = $ARGV[1];                # pd-archive
  272. X#
  273. X#----------------------------------------------------------------------------
  274. X# read in the file of filenames and relate the decsriptions to them.
  275. X# the format is like 4dos's
  276. X#
  277. Xopen (STDIN,$DESCRIPTION) || die "cannot open stdin $DESCRIPTION: $!\n";
  278. Xwhile ( <STDIN> ) {
  279. X    chop;
  280. X    next unless /^[a-zA-Z0-9_]/;
  281. X    ($name,$description) = split(' ',$_,2);
  282. X    $description{$name} = $description;
  283. X}
  284. Xclose (STDIN);
  285. X
  286. Xchdir $ARCHIVE || die "Can't cd to $ARCHIVE: $!\n";
  287. X
  288. X#-------------- get the list of files in the directory ----------------------
  289. X
  290. Xopendir(DIR, '.') || die "Can't open $dir";
  291. Xlocal(@filenames) = readdir(DIR);
  292. Xclosedir(DIR);
  293. X
  294. X#-------------- process all files in directory ------------------------------
  295. X
  296. Xfor (@filenames) {
  297. X    next if $_ eq '.';
  298. X    next if $_ eq '..';
  299. X    $name = "$_";
  300. X    ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,
  301. X        $attime,$mtime,$ctime,$blksize,$blocks) = stat($name);
  302. X
  303. X    #---------- find the owner of the file 
  304. X    ($user) = getpwuid($uid);
  305. X
  306. X    #---------- set a description text if none exists
  307. X    if ($description{$name} eq "") { $description{$name} = "(NO DESCRIPTION AVAILABLE)";}
  308. X
  309. X    #---------- make me feel better it's doing *something*
  310. X    select(stderr) ; printf("%20s\r",$name) ; select(stdout);
  311. X    
  312. X    $pathname = $ARCHIVE."/".$name;
  313. X
  314. X    # --------- create temp. file for article    
  315. X    open (TMP,">$TEMPFILE") || die "cannot open stdout $TEMPFILE: $!\n";
  316. X    write(TMP);
  317. X    close(TMP);
  318. X
  319. X    # --------- start newscommand to build article
  320. X    system ("$NEWSCMD < $TEMPFILE");
  321. X}
  322. X#----------------------------------------------------------------------------
  323. X
  324. Xformat TMP =
  325. XNewsgroups: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  326. X        $NEWSGROUP
  327. XFrom: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  328. X      $user
  329. XSubject: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  330. X         $name
  331. XKeywords: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  332. X          $description{$name}
  333. XDistribution: local
  334. X
  335. XBINFILE
  336. X@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  337. X$pathname
  338. X.
  339. END_OF_FILE
  340.   if test 2766 -ne `wc -c <'mbox/contrib/instpd.perl/instpd.pl'`; then
  341.     echo shar: \"'mbox/contrib/instpd.perl/instpd.pl'\" unpacked with wrong size!
  342.   fi
  343.   chmod +x 'mbox/contrib/instpd.perl/instpd.pl'
  344.   # end of 'mbox/contrib/instpd.perl/instpd.pl'
  345. fi
  346. if test -f 'mbox/contrib/instpic' -a "${1}" != "-c" ; then 
  347.   echo shar: Will not clobber existing file \"'mbox/contrib/instpic'\"
  348. else
  349.   echo shar: Extracting \"'mbox/contrib/instpic'\" \(1397 characters\)
  350.   sed "s/^X//" >'mbox/contrib/instpic' <<'END_OF_FILE'
  351. X# It's local UN.NET stuff but may be helpful for you, too!
  352. X#
  353. X# I use the ix/MBox command "uudecode from-to" to locate and uudecode
  354. X# pictures in the newsgroup "alt.binaries.pictures.supermodels" (my users
  355. X# LOVE those pictures). 
  356. X#
  357. X# The uudecoded pictures are spooled in "/tmp.uud". That's the place where
  358. X# this script looks for the pics. It copies them to "_PATH" and then creates
  359. X# a news article in the newsgroup "_GROUP" ...
  360. X#
  361. X# Strange, I know, but a very convenient way to fill file areas as well ;-)
  362. X
  363. X
  364. X_GROUP="local.pd.pictures"        # which newsgroup ?
  365. X
  366. X_DATE=`date`                # just for the Message-ID
  367. X_PATH="/local/pd/pictures"        # where are the PD/freeware-files ?
  368. X
  369. Xcd /tmp/.uud
  370. Xrm *.UUDE*
  371. X
  372. Xfor i in *        
  373. X    do
  374. X        mv $i $_PATH
  375. X    
  376. X        _DATE=`date`    
  377. X        echo $_DATE > ../instpd.d1            
  378. X        sed '/ /s//./g' < ../instpd.d1 >../instpd.d2    # building an RFC-conform Message-ID
  379. X    
  380. X        echo "From: pd-service@unnet.w.open.de" > ../instpd.tmp
  381. X        echo "Newsgroups: "$_GROUP >> ../instpd.tmp
  382. X        echo "Distribution: local" >> ../instpd.tmp
  383. X        echo "Subject:" $i >> ../instpd.tmp
  384. X        echo "Message-ID: <"`cat ../instpd.d2`"@unnet.w.open.de>" >> ../instpd.tmp
  385. X        echo >> ../instpd.tmp
  386. X        echo "BINFILE" >> ../instpd.tmp
  387. X        echo $_PATH/$i >> ../instpd.tmp
  388. X                
  389. X        echo -n Sending $i ...
  390. X        /usr/lib/news/inews -h < ../instpd.tmp
  391. X        echo done.    
  392. X    done
  393. X
  394. Xrm ../instpd.d*
  395. Xrm ../instpd.tmp
  396. X
  397. Xsleep 60 
  398. X
  399. X/local/mbox/mb-daemon $_GROUP
  400. X
  401. END_OF_FILE
  402.   if test 1397 -ne `wc -c <'mbox/contrib/instpic'`; then
  403.     echo shar: \"'mbox/contrib/instpic'\" unpacked with wrong size!
  404.   fi
  405.   chmod +x 'mbox/contrib/instpic'
  406.   # end of 'mbox/contrib/instpic'
  407. fi
  408. if test -f 'mbox/contrib/termcap.color' -a "${1}" != "-c" ; then 
  409.   echo shar: Will not clobber existing file \"'mbox/contrib/termcap.color'\"
  410. else
  411.   echo shar: Extracting \"'mbox/contrib/termcap.color'\" \(1274 characters\)
  412.   sed "s/^X//" >'mbox/contrib/termcap.color' <<'END_OF_FILE'
  413. X# ProComm PC-BBS-ANSI COLOR (!)
  414. X#
  415. X# Add this to your "/etc/termcap" file to offer a color version
  416. X# of the ANSI terminal entry
  417. X#
  418. X# cat termcap.color >> /etc/termcap
  419. X#
  420. X# If you don't have any "ansi" entry in your "/etc/termcap", you may
  421. X# use this one, too. Simply replace the headline:
  422. X#
  423. X# ansi|ansi-color|col-ansi-bbs|col-pc-ansi:\
  424. X
  425. Xansi-color|col-ansi-bbs|col-pc-ansi:\
  426. X    :al=\E[L:\
  427. X    :am:\
  428. X    :bs:\
  429. X    :cd=\E[J:\
  430. X    :ce=\E[K:\
  431. X    :cl=\E[2J\E[H:\
  432. X    :cm=\E[%i%d;%dH:\
  433. X    :co#80:\
  434. X    :dc=\E[P:\
  435. X    :do=\E[B:\
  436. X    :bt=\E[Z:\
  437. X    :ei=:\
  438. X    :ho=\E[H:\
  439. X    :im=:li#25:\
  440. X    :nd=\E[C:\
  441. X    :pt:\
  442. X        :md=\E[40;31m:\
  443. X    :me=\E[0m:\
  444. X    :mr=\E[44;37m:\
  445. X    :mb=\E[5m:\
  446. X    :ms:\
  447. X    :so=\E[7m:\
  448. X    :se=\E[m:\
  449. X    :us=\E[1;33m:\
  450. X    :ue=\E[m:\
  451. X    :up=\E[A:\
  452. X    :kb=^h:\
  453. X    :ku=\E[A:\
  454. X    :kd=\E[B:\
  455. X    :kl=\E[D:\
  456. X    :kr=\E[C:\
  457. X    :eo:sf=\E[S:\
  458. X    :sr=\E[T:\
  459. X    :GS=\E[12m:\
  460. X    :GE=\E[10m:\
  461. X    :GV=\63:\
  462. X    :GH=D:\
  463. X    :GC=E:\
  464. X    :GL=\64:\
  465. X    :GR=C:\
  466. X    :RT=^J:\
  467. X    :G1=?:\
  468. X    :G2=Z:\
  469. X    :G3=@:\
  470. X    :G4=Y:\
  471. X    :GU=A:\
  472. X    :GD=B:\
  473. X    :CW=\E[M:\
  474. X    :NU=\E[N:\
  475. X    :RF=\E[O:\
  476. X    :RC=\E[P:\
  477. X    :WL=\E[S:\
  478. X    :WR=\E[T:\
  479. X    :CL=\E[U:\
  480. X    :CR=\E[V:\
  481. X    :HM=\E[H:\
  482. X    :EN=\E[F:\
  483. X    :PU=\E[I:\
  484. X    :PD=\E[G:\
  485. X    :X1=\E[34;47m:\
  486. X    :X2=\E[30;47m:\
  487. X    :X3=\E[30;42m:\
  488. X    :X4=\E[1;37;41m:\
  489. X    :X5=\E[30;47m:\
  490. X    :X6=\E[1;33;47m:\
  491. X    :X7=\E[1;37;42m:\
  492. X    :XA=\E[1;33;47m:\
  493. X    :XB=\E[1;33;46m:\
  494. X    :XC=\E[30;47m:\
  495. X    :XD=\E[30;46m:\
  496. X    :X0=\E[m:
  497. END_OF_FILE
  498.   if test 1274 -ne `wc -c <'mbox/contrib/termcap.color'`; then
  499.     echo shar: \"'mbox/contrib/termcap.color'\" unpacked with wrong size!
  500.   fi
  501.   # end of 'mbox/contrib/termcap.color'
  502. fi
  503. if test -f 'mbox/contrib/wendy/Makefile' -a "${1}" != "-c" ; then 
  504.   echo shar: Will not clobber existing file \"'mbox/contrib/wendy/Makefile'\"
  505. else
  506.   echo shar: Extracting \"'mbox/contrib/wendy/Makefile'\" \(1394 characters\)
  507.   sed "s/^X//" >'mbox/contrib/wendy/Makefile' <<'END_OF_FILE'
  508. X# MINIX 386 (BCC)
  509. X# CC= bcc
  510. X# CHMEM= chmem
  511. X# CFLAGS= -D_SYS7 -D_LOCAL
  512. X# CONVERT= mv a.out $@
  513. X# STRIP= strip $@
  514. X#
  515. X#
  516. X# MINIX 386 (GCC 1.37)
  517. X# CC= gcc
  518. X# CHMEM= :
  519. X# CFLAGS= -O -D_SYS7 -D_ESTDIO -traditional
  520. X# CFLAGS= -O -D_SYS7 -D_ESTDIO -traditional -D_LOCAL     # German Version
  521. X# CONVERT= /usr/local/bin/gcc2minix < a.out > $@
  522. X# STRIP= strip $@
  523. X#
  524. X#
  525. X# ESIX SVR3
  526. X# CC= gcc
  527. X# CHMEM= true
  528. X# CFLAGS= -O2 
  529. X# LIB= -lcurses -lc_s
  530. X# CONVERT= mv a.out $@
  531. X# STRIP= strip $@
  532. X# 
  533. X# 
  534. X# Dell 2.1 (SVR4) & GCC 2.1
  535. X# CC= /usr/local/bin/gcc
  536. X# LN= ln
  537. X# CHMEM= :
  538. X# CFLAGS= -traditional -g 
  539. X# LIB= -ltermlib
  540. X# CONVERT= mv a.out $@
  541. X# CHOWN= chown $(OWNER) 
  542. X# CHGRP= chgrp $(GROUP)
  543. X# STRIP= :
  544. X#
  545. X# 
  546. X# Linux 0.99pl2 & GCC 2.3.3
  547. X CC= cc
  548. X LN= ln
  549. X CHMEM= :
  550. X CFLAGS= -O -D_ANSI -traditional -w -D_POSIX_SOURCE
  551. X#CFLAGS= -O -D_ANSI -traditional -w -D_POSIX_SOURCE -D_LOCAL    # German Version
  552. X LIB= -ltermcap
  553. X CONVERT= mv a.out $@
  554. X CHOWN= chown $(OWNER)
  555. X CHGRP= chgrp $(GROUP)
  556. X STRIP= strip $@ 
  557. X
  558. XPROG=wendy
  559. XOBJ=    getch.o echo.o getline.o tools.o block.o \
  560. X    misc.o rtf.o screen.o ctrl.o wendy.o
  561. X$(PROG): $(OBJ)
  562. X    $(CC) $(CFLAGS) $(OBJ) $(LIB)
  563. X    @$(CONVERT)
  564. X    @$(CHMEM) +250000 $@
  565. X    @$(STRIP)
  566. X    @chmod +x $@
  567. X
  568. X
  569. Xgetch.o:    wendy.h
  570. Xecho.o:        wendy.h
  571. Xgetline.o:    wendy.h
  572. Xtools.o:    wendy.h
  573. Xblock.o:    wendy.h
  574. Xmisc.o:        wendy.h
  575. Xrtf.o:        wendy.h
  576. Xscreen.o:    wendy.h
  577. Xctrl.o:        wendy.h
  578. Xwendy.o:    wendy.h    
  579. X
  580. Xclean:;
  581. X    @rm -f *.o core a.out wendy wendy.sh
  582. X    
  583. END_OF_FILE
  584.   if test 1394 -ne `wc -c <'mbox/contrib/wendy/Makefile'`; then
  585.     echo shar: \"'mbox/contrib/wendy/Makefile'\" unpacked with wrong size!
  586.   fi
  587.   # end of 'mbox/contrib/wendy/Makefile'
  588. fi
  589. if test -f 'mbox/contrib/wendy/echo.c' -a "${1}" != "-c" ; then 
  590.   echo shar: Will not clobber existing file \"'mbox/contrib/wendy/echo.c'\"
  591. else
  592.   echo shar: Extracting \"'mbox/contrib/wendy/echo.c'\" \(1949 characters\)
  593.   sed "s/^X//" >'mbox/contrib/wendy/echo.c' <<'END_OF_FILE'
  594. X/* ix/MBox/WENDY (echo.c) by Volker Schuermann, 04.12.1993
  595. X
  596. X   This C source code contains the following functions:
  597. X
  598. X   #GE getch()            switch echo on/off, return anyway
  599. X
  600. X   Contact <volkers@unnet.wupper.de> for help! 
  601. X
  602. X
  603. X   !!! See below to find out who wrote this one!!! */
  604. X
  605. X
  606. X
  607. X
  608. X
  609. X
  610. X
  611. X
  612. X/*
  613. X *    %Z% %M%    %I% %D% %Q%
  614. X *
  615. X *    Copyright (C) 1990 by Christian Schlichtherle
  616. X *                  (chriss@attron.ruhr.sub.org)
  617. X *
  618. X *    %M% - C module for getch(S).
  619. X *
  620. X *    "getch" is a DOS and curses(S) like function which reads
  621. X *    a unsigned character and returns immediately without waiting for
  622. X *    newline.
  623. X *
  624. X *     getch() - Gets a unsigned character.
  625. X *     This function gets one unsigned character and immediately returns
  626. X *     without waiting for newline. The unsigned character is not echoed.
  627. X *     This function can be used best when you want to input only one
  628. X *     unsigned character within canonical input or if you need this function
  629. X *     only very rarely.
  630. X *     EOF is returned on errors or if an ignored signal occured.
  631. X *    
  632. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  633. X */
  634. X
  635. X
  636. X#include <sys/types.h>
  637. X#include <stdio.h>    
  638. X#include <errno.h>
  639. X#ifndef _SYS7
  640. X#include <sys/ioctl.h>
  641. X#include <termio.h>
  642. X#else
  643. X#include <sgtty.h>
  644. X#endif 
  645. X
  646. X#ifndef _SYS7
  647. Xstatic struct termio    told, tnew;
  648. X
  649. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  650. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  651. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  652. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  653. X             ioctl(0, TCSETA, &tnew))
  654. X
  655. X#else
  656. Xstatic struct sgttyb    told, tnew;
  657. X
  658. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  659. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  660. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  661. X             ioctl(0, TIOCSETP, &tnew))
  662. X
  663. X#endif
  664. X
  665. Xstatic int    set = 0;
  666. X
  667. Xvoid    echo( mode )
  668. Xint     mode;
  669. X{
  670. X    int    rstat;
  671. X
  672. X    if(mode == 0){
  673. X        if (!set) {
  674. X            get_oldmode();
  675. X            tnew = told;
  676. X            set = 1;
  677. X        }
  678. X        set_newmode();
  679. X    }    
  680. X    if(mode == 1){
  681. X            set_oldmode();
  682. X    }
  683. X}
  684. X
  685. END_OF_FILE
  686.   if test 1949 -ne `wc -c <'mbox/contrib/wendy/echo.c'`; then
  687.     echo shar: \"'mbox/contrib/wendy/echo.c'\" unpacked with wrong size!
  688.   fi
  689.   # end of 'mbox/contrib/wendy/echo.c'
  690. fi
  691. if test -f 'mbox/contrib/wendy/getch.c' -a "${1}" != "-c" ; then 
  692.   echo shar: Will not clobber existing file \"'mbox/contrib/wendy/getch.c'\"
  693. else
  694.   echo shar: Extracting \"'mbox/contrib/wendy/getch.c'\" \(2356 characters\)
  695.   sed "s/^X//" >'mbox/contrib/wendy/getch.c' <<'END_OF_FILE'
  696. X/* ix/MBox (getch.c) by Volker Schuermann, 04.12.1993
  697. X
  698. X   This C source code contains the following functions:
  699. X
  700. X   #GE getch()            read a char, return anyway
  701. X
  702. X   Contact <volkers@unnet.wupper.de> for help! 
  703. X
  704. X
  705. X   !!! See below to find out who wrote this one!!! */
  706. X
  707. X
  708. X
  709. X
  710. X/*
  711. X *    %Z% %M%    %I% %D% %Q%
  712. X *
  713. X *    Copyright (C) 1990 by Christian Schlichtherle
  714. X *                  (chriss@attron.ruhr.sub.org)
  715. X *
  716. X *    %M% - C module for getch(S).
  717. X *
  718. X *    "getch" is a DOS and curses(S) like function which reads
  719. X *    a UNSIGNED character and returns immediately without waiting for
  720. X *    newline.
  721. X *
  722. X *     getch() - Gets a UNSIGNED character.
  723. X *     This function gets one UNSIGNED character and immediately returns
  724. X *     without waiting for newline. The UNSIGNED character is not echoed.
  725. X *     This function can be used best when you want to input only one
  726. X *     UNSIGNED character within canonical input or if you need this function
  727. X *     only very rarely.
  728. X *     EOF is returned on errors or if an ignored signal occured.
  729. X *    
  730. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  731. X */
  732. X
  733. X#include "defs.h"
  734. X#include <sys/types.h>
  735. X#include <stdio.h>    
  736. X#include <errno.h>
  737. X
  738. X#ifndef _SYS7
  739. X#include <sys/ioctl.h>
  740. X
  741. X#ifdef _LINUX
  742. X#include <termio.h>
  743. X#else
  744. X#include <sys/termio.h>
  745. X#endif
  746. X
  747. X#else
  748. X#include <sgtty.h>
  749. X#endif 
  750. X
  751. X#ifndef _SYS7
  752. Xstatic struct termio    told, tnew;
  753. X
  754. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  755. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  756. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  757. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  758. X             ioctl(0, TCSETA, &tnew))
  759. X
  760. X#else
  761. Xstatic struct sgttyb    told, tnew;
  762. X
  763. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  764. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  765. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  766. X             ioctl(0, TIOCSETP, &tnew))
  767. X
  768. X#endif
  769. X
  770. Xstatic int    set = 0;
  771. X
  772. Xint    getch()
  773. X{
  774. X    int    rstat;
  775. X    int    c;
  776. X
  777. X#ifdef _PROFILE
  778. X  profile( "getch()" );
  779. X#endif
  780. X
  781. X    if (!set) {
  782. X            /* Get old terminal mode. */
  783. X        if (get_oldmode() == -1)
  784. X            return (EOF);
  785. X
  786. X        tnew = told;
  787. X            /* Don't execute this part anymore. */
  788. X        set = 1;
  789. X    }
  790. X
  791. X        /* Set new terminal mode. */
  792. X    if (set_newmode() == -1)
  793. X        return (EOF);
  794. X
  795. X        /* 
  796. X         * Read one character. The orginal function used 
  797. X         * read(0, &c, 1) but getchar is a macro 
  798. X         * and faster. Xenox Fri Jun 19 20:44:46 DST 1992
  799. X         */
  800. X    c = getchar();
  801. X
  802. X        set_oldmode();
  803. X
  804. X    return ((int)c);
  805. X}
  806. X
  807. X
  808. X
  809. END_OF_FILE
  810.   if test 2356 -ne `wc -c <'mbox/contrib/wendy/getch.c'`; then
  811.     echo shar: \"'mbox/contrib/wendy/getch.c'\" unpacked with wrong size!
  812.   fi
  813.   # end of 'mbox/contrib/wendy/getch.c'
  814. fi
  815. if test -f 'mbox/contrib/wendy/wendy.h' -a "${1}" != "-c" ; then 
  816.   echo shar: Will not clobber existing file \"'mbox/contrib/wendy/wendy.h'\"
  817. else
  818.   echo shar: Extracting \"'mbox/contrib/wendy/wendy.h'\" \(2347 characters\)
  819.   sed "s/^X//" >'mbox/contrib/wendy/wendy.h' <<'END_OF_FILE'
  820. X#include <stdio.h>
  821. X#include <signal.h>
  822. X
  823. X#ifndef EXTERN
  824. X#define EXTERN extern
  825. X#endif
  826. X
  827. X#ifdef _MBOX
  828. X#undef _MBOX
  829. X#endif
  830. X
  831. X#ifdef _LOCAL
  832. X#    define HILFE          "/local/mbox/contrib/wendy/wendy.hlp"
  833. X#    define VERSION       " WENDY 1.2g  -  Simple (MIME) RichTextFormat Editor  -  HILFE: CTRL-O "
  834. X#else
  835. X#    define HILFE        "/local/mbox/contrib/wendy/english.hlp"
  836. X#    define VERSION       " WENDY 1.2e  -  Simple (MIME) RichTextFormat Editor  -  HELP: CTRL-O "
  837. X#endif
  838. X
  839. X#define RULERLINE     "1...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...80"
  840. X
  841. X#define CR        13
  842. X#define LF        10
  843. X#define BS        8
  844. X#define TAB        9
  845. X#define ESC        27
  846. X
  847. X#ifdef _SYS7
  848. X#define ENTER       13
  849. X#else
  850. X#define ENTER        10
  851. X#endif
  852. X
  853. X#define CTRL_A        1
  854. X#define CTRL_B      2
  855. X#define CTRL_C        3
  856. X#define CTRL_D      4
  857. X#define CTRL_E        5
  858. X#define CTRL_F      6
  859. X#define CTRL_G      7
  860. X#define CTRL_H      8
  861. X
  862. X#define CTRL_J      10  
  863. X#define CTRL_K        11
  864. X#define CTRL_L        12
  865. X
  866. X#define CTRL_N        14
  867. X#define CTRL_O        15
  868. X#define CTRL_P        16
  869. X#define CTRL_Q        17
  870. X#define CTRL_R        18
  871. X#define CTRL_S        19
  872. X#define CTRL_T      20
  873. X#define CTRL_U        21
  874. X#define CTRL_V      22
  875. X#define CTRL_W      23
  876. X#define CTRL_X      24
  877. X#define CTRL_Y        25
  878. X#define CTRL_Z      26
  879. X
  880. X#define UP        9165
  881. X#define DOWN        9166
  882. X#define LEFT        9168
  883. X#define RIGHT        9167
  884. X
  885. X#define PGUP        9186
  886. X#define PGDN        9185
  887. X
  888. X#define PGUP_LI        9153
  889. X#define PGDN_LI        9154
  890. X
  891. X#define END         9189
  892. X#define HOME        9172    
  893. X
  894. X#define DEL        9152
  895. X#define INS        9151
  896. X
  897. X#define DELD            1111
  898. X
  899. X#define HOME_LI        9226
  900. X
  901. X#define NUM5        9171
  902. X
  903. X
  904. X#define TLX_END        9175    /* TELIX 3.11  &  PROCOMM 2.4.1 */
  905. X#define TLX_DEL        127
  906. X#define TLX_INS        0
  907. X
  908. X#define TEM_INS     22    /* TELEMATE 2.11 */
  909. X#define TEM_DEL     7
  910. X
  911. X#define    BLANK        127
  912. X
  913. X#define STRING         140
  914. X#define LONGSTRING    700
  915. X
  916. X#define MAXLINES     2000
  917. X
  918. X#define LINELENGTH    180
  919. X
  920. X#define is_centered    1
  921. X#define is_richtext    2
  922. X#define is_plain    4
  923. X
  924. X#define BLOCKMODE    2
  925. X
  926. Xint wBS, wDEL, wINS, wEND;
  927. X
  928. XFILE *ROLLBACK;
  929. X
  930. Xunsigned char SCREEN[27][STRING];
  931. Xunsigned char ATTRIB[27][STRING];
  932. X
  933. Xunsigned char TEXT[MAXLINES][LINELENGTH];
  934. Xint  FLAG[MAXLINES];
  935. X
  936. Xunsigned char version[STRING];
  937. X
  938. Xunsigned char umlaut[STRING], terminal[STRING];
  939. X
  940. Xint x, y, ypos, lastline, xruler;
  941. X
  942. Xint NEU, CHANGED, REALLY, MARK, RULER, STATUSM, FORMATTER;
  943. Xint MAXX, MAXY, START;
  944. X
  945. Xint RTF_attrib;
  946. Xint RTF_toggle;
  947. Xint INS_mode;
  948. X
  949. Xstruct block{
  950. X    int status;
  951. X    int x1;
  952. X    int y1;
  953. X    int x2;
  954. X    int y2;
  955. X    int y;
  956. X    int ypos;
  957. X} BLOCK;
  958. X
  959. Xint UMLAUT;
  960. END_OF_FILE
  961.   if test 2347 -ne `wc -c <'mbox/contrib/wendy/wendy.h'`; then
  962.     echo shar: \"'mbox/contrib/wendy/wendy.h'\" unpacked with wrong size!
  963.   fi
  964.   # end of 'mbox/contrib/wendy/wendy.h'
  965. fi
  966. if test -f 'mbox/etc/alias.sh' -a "${1}" != "-c" ; then 
  967.   echo shar: Will not clobber existing file \"'mbox/etc/alias.sh'\"
  968. else
  969.   echo shar: Extracting \"'mbox/etc/alias.sh'\" \(1562 characters\)
  970.   sed "s/^X//" >'mbox/etc/alias.sh' <<'END_OF_FILE'
  971. X#---------------------------------------------------------------------------
  972. X#
  973. X#                      ix/MBox  A L I A S . S H
  974. X#             Bulletin Board System for UNIX(-Derivations)
  975. X#
  976. X#                          Volker Schuermann
  977. X#                     Wuppertal, FRG, 04.12.1993
  978. X#
  979. X#---------------------------------------------------------------------------
  980. X# This script appends an entry for every new ix/MBox user to the aliases 
  981. X# file of SMAIL (etc.) and rebuilds the aliases database.
  982. X#
  983. X# If you are using UMAIL instead of SMAIL, you should comment out every
  984. X# line of the following script.
  985. X#---------------------------------------------------------------------------
  986. X# Dieses Script fuegt einen Eintrag fuer jeden neuen User der ix/MBox an die
  987. X# Alias-Datei von SMAIL (etc.) an und erzeugt einen neue Alias-Datenbank. 
  988. X#
  989. X# Wird UMAIL statt SMAIL verwendet, sollten alle Zeilen dieses Scripts' aus-
  990. X# kommentiert werden.
  991. X#---------------------------------------------------------------------------
  992. X# Parameters:
  993. X#
  994. X# $1  -> Name of the new BBS user (something like that: "Jack.Daniels")
  995. X# 
  996. X# Example:
  997. X#
  998. X# echo $1 "        " \"\|/usr/bin/xmd $1 -\" >> /usr/lib/smail/aliases
  999. X# /usr/lib/smail/mkaliases
  1000. X#
  1001. X# Double, triple and quadruple check the path to the aliases file!!!
  1002. X# Especially quite a few LINUX installation have two aliases files on
  1003. X# different paths but only one of them is the right one!!!
  1004. X#---------------------------------------------------------------------------
  1005. X
  1006. Xecho $1 "        " \"\|/usr/bin/xmd $1 -\" >> /usr/lib/aliases
  1007. X/usr/lib/smail/mkaliases
  1008. END_OF_FILE
  1009.   if test 1562 -ne `wc -c <'mbox/etc/alias.sh'`; then
  1010.     echo shar: \"'mbox/etc/alias.sh'\" unpacked with wrong size!
  1011.   fi
  1012.   # end of 'mbox/etc/alias.sh'
  1013. fi
  1014. if test -f 'mbox/etc/ansi.help.U' -a "${1}" != "-c" ; then 
  1015.   echo shar: Will not clobber existing file \"'mbox/etc/ansi.help.U'\"
  1016. else
  1017.   echo shar: Extracting \"'mbox/etc/ansi.help.U'\" \(2459 characters\)
  1018.   sed "s/^X//" >'mbox/etc/ansi.help.U' <<'END_OF_FILE'
  1019. Xbegin 644 mbox/etc/ansi.help
  1020. XM&ULP.S,T.S0T;2 @&ULT,&W;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;
  1021. XMV]O;V]O;V]O;V]O;V]O;V]L*&UM!&ULT-T/;V]O;V]O;V]O;V]O;V]O;V]O;
  1022. XMV]O;V]O;V]O;V]O;VPH;6S0T;2 @&ULT,&W;V]O;V]O;V]O;V]O;V]O;V]L;
  1023. XM6S,Q;=O;&ULS-#LT-VW?&ULT,&W;VQM;,S%MVPH;6T$;6S(V0QM;,S0[-#=M
  1024. XMWQM;-#!MV]O;V]O;V]O;V]O;V]O;V]O;V]L;6S,Q;=O;&ULS-#LT-VT;6S0P
  1025. XM;0H;6T$;6S0Y0QM;-#=MWQM;-#!MVQM;,S%MV]L;6S,T.S0W;=\;6S0P;=L;
  1026. XM6S,Q;=O;&ULS-#LT-VT;6S0P;0H;6T$;6S4W0QM;-#=MWQM;-#!MV]O;V]O;
  1027. XMV]O;V]O;V]O;V]O;V]O;"AM;-#1M(" ;6S0P;=O;V]O;V]O;V]O;V]O;V]O;
  1028. XMVQM;,S%MV]L;6S,W.S0W;=L;6S,T.S0P;=O;&ULS,6W;"AM;01M;,C9#&ULS
  1029. XM-SLT-VW;&ULS-#LT,&W;V]O;V]O;V]L;6S,Q;=O;&ULS-#LT-VW?&ULT,&W;
  1030. XMV]O;V]O;"AM;01M;-#9#VQM;,S%MV]L;6S,W.S0W;=L;6S,T.S0P;=L;6S,Q
  1031. XM;=O;&ULS-SLT-VW;&ULT,&T*&UM!&ULU-$,;6S,T.S0P;=L;6S,Q;=O;&ULS
  1032. XM-SLT-VW;&ULS-#LT,&W;V]O;V]O;V]O;V]O;V]O;V]O;V]L*&ULT-&T@(!M;
  1033. XM-#!MV]O;V]O;V]O;V]O;V]O;V]O;&ULS,6W;VQM;,S<[-#%MWQM;,S1MW]\;
  1034. XM6S0P;0H;6T$;6S(U0QM;,S$[-#!MVQM;,S<[-#=MVQM;,S0[-#!MVQM;-#%M
  1035. XMW]_?W]_?&ULT,&W;VQM;,S%MV]L*&UM!&ULS.$,;6S,W.S0W;=L;6S,T.S0P
  1036. XM;=L;6S0Q;=_?W]_?&ULT,&W;VQM;,S%MV]L*&UM!&ULT.4,;6S,W.S0W;=L;
  1037. XM6S,T.S0P;=L;6S,Q;=O;&ULS-SLT-VW;&ULS-#LT,&W;&ULS,6W;VPH;6T$;
  1038. XM6S4W0QM;,S<[-#=MVQM;,S0[-#1MVQM;-#!MV]O;V]O;V]O;V]O;V]O;V]O;
  1039. XMV]L*&ULT-&T@(!M;-#!MV]O;V]O;V]O;V]O;V]O;V]O;&ULS,6W;VQM;,S<[
  1040. XM-#=MVQM;,S1MW-P;6S0P;0H;6T$;6S(U0QM;,S$[-#!MVQM;,S<[-#=MVQM;
  1041. XM,S0[-#!MVQM;,S%MV]L;6S,W.S0W;=L;6S,T;=P;6S0P;0H;6T$;6S,R0QM;
  1042. XM-#=MW!M;,S$[-#!MVQM;,S<[-#=MVQM;,S0[-#!MVQM;,S%MV]L;6S,W.S0W
  1043. XM;=L;6S0P;0H;6T$;6S,Y0QM;,S0[-#!MVQM;,S%MV]L;6S,W.S0W;=L;6S,T
  1044. XM;=P;6S,Q.S0P;=L;6S,W.S0W;=L;6S0P;0H;6T$;6S0V0QM;,S0[-#!MVQM;
  1045. XM,S%MV]L;6S,W.S0W;=L;6S,T.S0P;=L;6S,Q;=O;&ULS-SLT-VT;6S0P;0H;
  1046. XM6T$;6S4S0QM;-#=MVQM;,S0[-#!MVQM;,S%MVQM;-#%MVQM;,S<[-#=MVQM;
  1047. XM,S0[-#1MVQM;-#!M"AM;01M;-3E#&ULT,&W;V]O;V]O;V]O;V]O;V]O;V]O;
  1048. XMVPH;6S(P0QM;,S%MV]L;6S,W.S0W;=L;6S)#&ULS,3LT,&W;&ULS-SLT-VW;
  1049. XM&ULQ0QM;,S$[-#!MV]L*&UM!&ULS,$,;6S,W.S0Q;=S<W-P;6S0W;=L;6S%#
  1050. XM&ULS,3LT,&W;VQM;,S<[-#=MVQM;,4,;6S0P;0H;6T$;6S0P0QM;,S$[-#!M
  1051. XMV]L;6S,W.S0W;=L;6S%#&ULS,3LT,&W;&ULS-SLT-VW;&ULR0QM;-#!M"AM;
  1052. XM01M;-#A#&ULT,&W?WR @W]\@(-_?"AM;,C!#&ULS,6W;VQM;,S<[-#=MVQM;
  1053. XM,D,;6S,Q.S0P;=L;6S,W.S0W;=L;6S%#&ULS,3LT,&W;VPH;6T$;6S,P0QM;
  1054. XM,S<[-#%MWQM;,S$[-#!MW-S<("#;VQM;,S<[-#=MVQM;,4,;6S,Q.S0P;=O;
  1055. XM"AM;01M;-#)#&ULS-SLT,6W?&ULS,3LT,&W<VQM;,S<[-#=MVQM;,4,;6S,Q
  1056. XM.S0P;=O;&ULS-VW<(!M;,S%M"AM;01M;-3%#V]L;6S,W;=P@&ULS,6W;VQM;
  1057. XM,S=MW H;6S(Q0]_?(" @WR @W]_?W]_?("#?WR ;6S,Q;=O;&ULS-SLT-VW;
  1058. XM&ULT,&W?W]\@(-_?("#?WR @W]\*&ULT,4/?WPH*"@H*"@H*"@H*"@H*&ULP
  1059. X";0HT
  1060. Xend
  1061. END_OF_FILE
  1062.   if test 2459 -ne `wc -c <'mbox/etc/ansi.help.U'`; then
  1063.     echo shar: \"'mbox/etc/ansi.help.U'\" unpacked with wrong size!
  1064.   else
  1065.     echo shar: Uudecoding \"'mbox/etc/ansi.help'\" \(1757 characters\)
  1066.     cat mbox/etc/ansi.help.U | uudecode
  1067.     if test 1757 -ne `wc -c <'mbox/etc/ansi.help'`; then
  1068.       echo shar: \"'mbox/etc/ansi.help'\" uudecoded with wrong size!
  1069.     else
  1070.       rm mbox/etc/ansi.help.U
  1071.     fi
  1072.   fi
  1073.   # end of 'mbox/etc/ansi.help.U'
  1074. fi
  1075. if test -f 'mbox/etc/ansi.intro.U' -a "${1}" != "-c" ; then 
  1076.   echo shar: Will not clobber existing file \"'mbox/etc/ansi.intro.U'\"
  1077. else
  1078.   echo shar: Extracting \"'mbox/etc/ansi.intro.U'\" \(2794 characters\)
  1079.   sed "s/^X//" >'mbox/etc/ansi.intro.U' <<'END_OF_FILE'
  1080. Xbegin 644 mbox/etc/ansi.intro
  1081. XM&ULP.S,W.S0P;=O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;
  1082. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;"AM;01M;-C)#V]O;V]O;V]O;
  1083. XMV]O;V]O;V]L*V]O;V]O;V]O;V]O;VQM;,S)MV]L;6S$[,S [-#=MW!M;,#LS
  1084. XM-SLT,&W;V]O;&ULS,FW;&ULQ.S,P.S0W;=P;6S0P;0H;6T$;6S(R0QM;,#LS
  1085. XM-SLT,&W;V]O;V]O;V]O;&ULS,FW;VQM;,3LS,#LT-VW<&ULP.S,W.S0P;=O;
  1086. XMV]O;&ULS,FW;VPH;6T$;6S0R0QM;,3LS,#LT-VW<&ULP.S,W.S0P;=O;V]O;
  1087. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;VPK;V]O;V]O;V]O;V]O;
  1088. XM&ULS,FW;VQM;,3LS,#LT,FW;&ULP.S,W.S0P;=O;V]L;6S,R;=L;6S$[,S [
  1089. XM-#)MVQM;-#!M"AM;01M;,C)#&ULP.S,W.S0P;=O;V]O;V]O;V]L;6S,R;=O;
  1090. XM&ULQ.S,P.S0W;=L;6S [,S<[-#!MV]O;V]L;6S,R;=O;"AM;01M;-#)#&ULQ
  1091. XM.S,P.S0R;=L;6S [,S<[-#!MV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;
  1092. XMV]O;V]O;V]O;"MO;V]O;V]O;V]O;V]L;6S,R;=O;&ULQ.S,P.S0R;=L;6S [
  1093. XM,S<[-#!MV]O;VQM;,S)MVQM;,3LS,#LT,FW;&ULT,&T*&UM!&ULR,D,;6S [
  1094. XM,S<[-#!MV]O;V]O;V]O;VQM;,S)MV]L;6S$[,S [-#=MVQM;,#LS-SLT,&W;
  1095. XMV]O;VQM;,S)MV]L*&UM!&ULT,D,;6S$[,S [-#=MVQM;,#LS-SLT,&W;V]O;
  1096. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]L*V]O;V]O;V]O;V]O;
  1097. XMVQM;,S)MV]L;6S$[,S [-#)MW!M;,#LS-SLT,FW<W!M;,S([-#=MWQM;,S<[
  1098. XM-#)MW!M;-#!M"AM;01M;,C!#&ULS,CLT,&W;&ULQ.S,P.S0R;=L;6S [,S<[
  1099. XM-#!MVQM;,S)MV]L;6S$[,S [-#)MW-S<W!M;-#!M"AM;01M;,CE#&ULP.S,R
  1100. XM.S0P;=L;6S$[,S [-#=MW!M;,#LS-SLT,&W;&ULS,FW;VQM;,3LS,#LT-VW;
  1101. XM&ULT,&T*&UM!&ULS-4,;6S [,S<[-#!MV]O;V]L;6S,R;=O;&ULQ.S,P.S0W
  1102. XM;=L;6S [,S<[-#!MV]O;V]L;6S,R;=O;"AM;01M;-3!#&ULQ.S,P.S0R;=S<
  1103. XMW-P;6S [,S([-#!MVQM;,3LS,#LT-VW<&ULP.S,W.S0P;=O;V]O;V]O;V]O;
  1104. XMV]O;V]O;VPH;6T$;6S<T0]O;V]O;"MO;V]O;V]O;V]O;V]L;6S,R;=O;&ULQ
  1105. XM.S,P.S0R;=L;6S [,S<[-#!MV]O;VQM;,S)MVQM;,3LS,#LT,FW;&ULT,&T*
  1106. XM&UM!&ULR,D,;6S [,S<[-#!MVQM;,S)MV]L;6S$[,S [-#)MVQM;,#LS-SLT
  1107. XM,&W;V]L;6S,R;=L;6S$[,S [-#)MVQM;-#!M"AM;01M;,S%#&ULP.S,W.S0P
  1108. XM;=L;6S,R;=O;&ULQ.S,P.S0W;=L;6S [,S<[-#!MV]O;V]L;6S,R;=O;"AM;
  1109. XM01M;-#)#&ULQ.S,P.S0W;=L;6S [,S<[-#!MV]O;V]L;6S,R;=O;&ULQ.S,P
  1110. XM.S0R;=L;6S [,S<[-#!MV]O;&ULS,FW;"AM;01M;-35#&ULQ.S,P.S0R;=L;
  1111. XM6S [,S<[-#!MV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]L*&ULQ,T,;6S,R;=O;
  1112. XM&ULQ.S,P.S0R;=L;6S1#&ULP.S,R.S0P;=L;6S$[,S [-#)MVQM;,4,;6S [
  1113. XM,S([-#!MV]L*&UM!&ULR-4,;6S$[,S [-#)MW-S<W-S;&ULQ0QM;,#LS,CLT
  1114. XM,&W;VQM;,3LS,#LT-VW;&ULU0QM;,#LS,CLT,&W;VPH;6T$;6S0R0QM;,3LS
  1115. XM,#LT-VW;&ULU0QM;,#LS,CLT,&W;VQM;,3LS,#LT,FW;&ULS0QM;,#LS,CLT
  1116. XM,&W;"AM;01M;-35#&ULQ.S,P.S0R;=L;6S0P;0H;6S0R;1M;,3-#&ULP.S,R
  1117. XM.S0P;=O;&ULQ.S,P.S0R;=L;6S1#&ULP.S,R.S0P;=L;6S$[,S [-#)MVQM;
  1118. XM,4,;6S0P;0H;6T$;6S(S0QM;,#LS,CLT,&W;VQM;,3LS,#LT,FW?&ULP.S,R
  1119. XM.S0P;=S<W-P@(-L;6S0W;=L;6S$[,S [-#)MWQM;-#!M"AM;01M;,S5#&ULP
  1120. XM.S,R.S0P;=S<W" @V]L;6S$[,S [-#)MWQM;,#LS,CLT,&W<W-P@(-O;&ULQ
  1121. XM.S,P.S0R;=\;6S0P;0H;6T$;6S4Q0QM;,#LS,CLT,&W<W-S;&ULQ.S,P.S0R
  1122. XM;=L;6S)#&ULP.S,R.S0P;=O;&ULQ.S,P;=P@(!M;,#LS,FW;VPH;6T$;6S8U
  1123. XM0QM;,3LS,&W<(" ;6S [,S)MV]L;6S$[,S!MW H;6S$T0]_?(" @("#?("#?
  1124. XMW]_?W]_?("#?W]_?W]\@(-_?W]_?WR @W]_?W]_?WR @(-_?(" @W]\@("#?
  1125. X4WPH*"@H*"@H*"@H*"@H*&ULP;0K?
  1126. Xend
  1127. END_OF_FILE
  1128.   if test 2794 -ne `wc -c <'mbox/etc/ansi.intro.U'`; then
  1129.     echo shar: \"'mbox/etc/ansi.intro.U'\" unpacked with wrong size!
  1130.   else
  1131.     echo shar: Uudecoding \"'mbox/etc/ansi.intro'\" \(2000 characters\)
  1132.     cat mbox/etc/ansi.intro.U | uudecode
  1133.     if test 2000 -ne `wc -c <'mbox/etc/ansi.intro'`; then
  1134.       echo shar: \"'mbox/etc/ansi.intro'\" uudecoded with wrong size!
  1135.     else
  1136.       rm mbox/etc/ansi.intro.U
  1137.     fi
  1138.   fi
  1139.   # end of 'mbox/etc/ansi.intro.U'
  1140. fi
  1141. if test -f 'mbox/etc/ansi.portinfo.U' -a "${1}" != "-c" ; then 
  1142.   echo shar: Will not clobber existing file \"'mbox/etc/ansi.portinfo.U'\"
  1143. else
  1144.   echo shar: Extracting \"'mbox/etc/ansi.portinfo.U'\" \(3289 characters\)
  1145.   sed "s/^X//" >'mbox/etc/ansi.portinfo.U' <<'END_OF_FILE'
  1146. Xbegin 644 mbox/etc/ansi.portinfo
  1147. XM&ULP.S,W.S0T;=L;6S$[,S0[-#=M(" @(" @(" @(" @(" @(" @(" @(" @
  1148. XM(" @(" @(" @(" @&ULT,&T*&UM!&ULS-T,;6S0W;2 @(" @(" @(" @(" @
  1149. XM(" @(" @(" @(" @(" @(" @(" @(" @(" @(!M;-#!M"AM;-#=M&ULP.S,W
  1150. XM.S0T;=L;6S$[,S0[-#=M(" @(" @(" @(" @(!M;,#LS-#LT-VT@(" ;6S0P
  1151. XM;0H;6T$;6S$W0QM;,3LS-#LT,&W;V]_?W]_?VQM;,#LS-VW?&ULS-#LT-VT@
  1152. XM(" @(" @(" ;6S0P;0H;6T$;6S,U0QM;,3LS-#LT,&W;VQM;,#LS-VW?&ULS
  1153. XM-#LT-VT@(" @(" @(" @(" @&ULT,&T*&UM!&ULU,4,;6S$[,S0[-#!MV]O?
  1154. XMW]\;6S [,S=MWQM;,S0[-#=M(" ;6S,W.S0T;=O;&ULT,&T*&UM!&ULV,4,;
  1155. XM6S$[,S0[-#=M(" @(" @(" @(" @(" @(" @&ULT,&T*&ULT-VT;6S [,S<[
  1156. XM-#1MVQM;,3LS-#LT-VT@(" @(" @(" @(!M;,#LS-#LT-VT@(" @(!M;-#!M
  1157. XM"AM;01M;,3=#&ULQ.S,T.S0P;=O;(!M;,#LS-#LT-VT@(!M;,S<[-#!MV]L;
  1158. XM6S$[,S1MVR *&UM!&ULR-D,;6S [,S0[-#=M(" @(" @(" @&ULQ.S,T.S0P
  1159. XM;=O;(!M;,#LS-#LT-VT@&ULT,&T*&UM!&ULS.4,;6S$[,S0[-#!MV]L;6S [
  1160. XM,S=MWQM;,S0[-#=M(" @(" @(" @&ULQ.S,T.S0P;=O;( H;6T$;6S4T0QM;
  1161. XM,#LS-#LT-VT@(" @(" @(!M;,3LS-&T@(" @(" @(" @(" @(" @(!M;-#!M
  1162. XM"AM;-#=M&ULP.S,W.S0T;=L;6S$[,S0[-#=M(" @(" @(" @(!M;,#LS-#LT
  1163. XM-VT@(" @(" ;6S0P;0H;6T$;6S$W0QM;,3LS-#LT,&W;V]P;6S0W;=S<W-P;
  1164. XM6S0P;=L@&ULP.S,W;=O;V]L;6S0T;=O;&ULT,&T*&UM!&ULS,D,;6S0P;=L;
  1165. XM6S$[,S0[-#=MW-P;6S0P;=O;W!M;-#=MW" ;6S [,S<[-#!MW-S;V]O;V]O;
  1166. XM"AM;01M;-#E#&ULQ.S,T.S0W;=S<&ULT,&W;V]P;6S0W;=P;6S [,S<[-#!M
  1167. XMV]O;VPH;6T$;6S4Y0QM;,3LS-#LT-VT@(!M;,#LS-SLT,&W;V]O;&ULQ.S,T
  1168. XM.S0W;2 @(" @(" @(" @(" ;6S0P;0H;6T$;6S<X0QM;-#=M(!M;-#!M"AM;
  1169. XM-#=M&ULP.S,W.S0T;=L;6S$[,S0[-#=M(" @(" @(" ;6S [,S0[-#=M(" @
  1170. XM(" @(" ;6S0P;0H;6T$;6S$W0QM;,3LS-#LT,&W;VR ;6S [,S=MW!M;,3LS
  1171. XM-&W<W-S<W!M;-#=MW!M;,#LS-SLT,&W;VPH;6T$;6S(Y0QM;,3LS-#LT-VW<
  1172. XMW-S<W!M;,#LS-SLT,&W<&ULQ.S,T;=O;(!M;,#LS-VW<&ULQ.S,T;=P*&UM!
  1173. XM&ULT,$,;6S0W;=P@(-S<W-S<W" ;6S [,S<[-#!MW!M;,3LS-&W;VR ;6S [
  1174. XM,S=MW!M;,3LS-&W<"AM;01M;-39#&ULT-VW<W-S<W!M;,#LS-SLT,&W;V]O;
  1175. XMV]L;6S$[,S0[-#=M(" @(" @(" @(" @&ULT,&T*&ULT-VT;6S [,S<[-#1M
  1176. XMVQM;,3LS-#LT-VT@(" @(!M;,#LS-#LT-VT@(" @(" @(" @(!M;-#!M"AM;
  1177. XM01M;,3=#&ULQ.S,T.S0P;=O;(!M;,#LS-VW;&ULQ.S,T;=O;(!M;,#LS-VW<
  1178. XMW!M;,3LS-&W;( H;6T$;6S(X0QM;,#LS-VW;&ULQ.S,T;=O;(!M;,#LS-VW<
  1179. XMW!M;,3LS-#LT-VT@&ULT,&W;VR *&UM!&ULS.$,;6S0W;2 ;6S0P;=O;(!M;
  1180. XM,#LS-VW;&ULQ.S,T;=O;(!M;,#LS-VW<W!M;,3LS-&W;( H;6T$;6S4P0QM;
  1181. XM,#LS-VW;&ULQ.S,T.S0W;=L;6S0P;=L@&ULP.S,W;=L;6S$[,S1MV]L@&ULP
  1182. XM.S,W;=S<"AM;01M;-C!#&ULQ.S,T;=L@&ULP.S,T.S0W;2 @(" @(!M;,3LS
  1183. XM-&T@(" @(" @(" @(!M;-#!M"AM;-#=M&ULP.S,W.S0T;2 ;6S,T.S0P;=O;
  1184. XMV]O;V]O;V]O;V]O;V]L;6S$[,S1MV]L@&ULP.S,T;=L*&UM!&ULR,4,;6S$[
  1185. XM,S1MV]L@&ULP.S,T;=O;&ULQ.S,T;=L@&ULP.S,T;=L;6S$[,S1MV]L@&ULP
  1186. XM.S,T;=L*&UM!&ULS,T/;VQM;,3LS-&W;VR ;6S [,S1MVQM;,3LS-&W;VR ;
  1187. XM6S0T;2 ;6S0P;=O;(!M;,#LS-&W;VPH;6T$;6S0X0QM;,3LS-&W;(!M;,#LS
  1188. XM-&W;&ULQ.S,T.S0T;=L;6S0P;=L@&ULP.S,T;=L;6S$[,S1MV]L@"AM;01M;
  1189. XM-3A#&ULP.S,T;=O;&ULQ.S,T;=L@&ULP.S,T;=O;V]O;V]O;V]O;V]O;V]O;
  1190. XM"AM;,S<[-#1M(!M;,S0[-#!MV]O;V]O;V]O;V]O;V]O;VQM;,3LS-&W;VR ;
  1191. XM6S [,S1MVQM;,3LS-&W;V]P*&UM!&ULR-$,;6S0T;=S<&ULT,&W;(!M;,#LS
  1192. XM-&W;&ULQ.S,T.S0T;=L;6S0P;=L@&ULP.S,T;=O;VPH;6T$;6S,U0QM;,3LS
  1193. XM-&W;VR ;6S [,S1MVQM;,3LS-&W;VR ;6S [,S1MVQM;,3LS-&W;VR ;6S [
  1194. XM,S1MVPH;6T$;6S0W0]L;6S$[,S1MVR ;6S [,S1MVQM;,3LS-&W;VR ;6S [
  1195. XM,S1MVQM;,3LS-&W;V]P*&UM!&ULU.$,;6S0T;=S<&ULT,&W;(!M;,#LS-&W;
  1196. XMV]O;V]O;V]O;V]O;V]O;&ULT-&T@&ULT,&T*&ULT-&T;6S,W;2 ;6S,T.S0P
  1197. XM;=O;V]O;V]O;V]O;V]O;V]O;W-S;V]S<W-S<W-O;W-S;V]O;W-S;V]S<V]L*
  1198. XM&UM!&ULT-$/<W-O;V]S;V]S<V]O<W-S<W-S;V]O;V]O;V]O;V]O;V]O;VPH*
  1199. X1"@H*"@H*"@H*"@H*&ULP;0K<
  1200. Xend
  1201. END_OF_FILE
  1202.   if test 3289 -ne `wc -c <'mbox/etc/ansi.portinfo.U'`; then
  1203.     echo shar: \"'mbox/etc/ansi.portinfo.U'\" unpacked with wrong size!
  1204.   else
  1205.     echo shar: Uudecoding \"'mbox/etc/ansi.portinfo'\" \(2357 characters\)
  1206.     cat mbox/etc/ansi.portinfo.U | uudecode
  1207.     if test 2357 -ne `wc -c <'mbox/etc/ansi.portinfo'`; then
  1208.       echo shar: \"'mbox/etc/ansi.portinfo'\" uudecoded with wrong size!
  1209.     else
  1210.       rm mbox/etc/ansi.portinfo.U
  1211.     fi
  1212.   fi
  1213.   # end of 'mbox/etc/ansi.portinfo.U'
  1214. fi
  1215. if test -f 'mbox/etc/ansi.sysinfo.U' -a "${1}" != "-c" ; then 
  1216.   echo shar: Will not clobber existing file \"'mbox/etc/ansi.sysinfo.U'\"
  1217. else
  1218.   echo shar: Extracting \"'mbox/etc/ansi.sysinfo.U'\" \(2540 characters\)
  1219.   sed "s/^X//" >'mbox/etc/ansi.sysinfo.U' <<'END_OF_FILE'
  1220. Xbegin 644 mbox/etc/ansi.sysinfo
  1221. XM&ULP.S,Q.S0P;=O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;
  1222. XMV]O;V]O;VPH;6T$;6S0R0QM;,3LS,#LT,6T@(!M;,#LS,3LT,&W;V]O;V]O;
  1223. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;VPH;6T$;6S<V0]O;VPK;V]O;V]O;
  1224. XMV]O;V]O;V]O;&ULS-VW;VQM;,3LS,#LT-VW<W-S<&ULT,6W<&ULP.S,Q.S0P
  1225. XM;=O;V]O;V]O;VPH;6T$;6S,R0]O;V]O;V]O;&ULS-VW;VQM;,3LS,#LT,6W<
  1226. XM(!M;,#LS,3LT,&W;V]O;V]O;VQM;,S=MV]L*&UM!&ULU-$,;6S$[,S [-#=M
  1227. XMW-P;6S0Q;=P;6S [,S$[-#!MV]O;V]O;V]O;V]O;V]O;V]O;V]O;VPH;6S$[
  1228. XM,S [-#%M(" @(" @(" @(" @(" @(!M;,#LS-SLT,&W;VQM;,3LS,&W;&ULT
  1229. XM,6T@(" @(" ;6S0P;0H;6T$;6S(U0QM;-#%M(" @(" @(" @(" @(" @(-_?
  1230. XM(" @(" @(!M;,#LS-SLT,6W<W!M;-#!MV]L*&UM!&ULU-$,;6S$[,S [-#=M
  1231. XMWQM;,#LS-SLT,6W<&ULQ.S,P;2 @(" @(" @(" @(" @(" @(" @&ULT,&T*
  1232. XM&UM!&ULW-D,;6S0Q;2 @(!M;-#!M"AM;-#%M(" @(" @(" @(" @(" @(!M;
  1233. XM,#LS-SLT,&W;VQM;,3LS,#LT-VW?&ULP.S,W.S0Q;=S<W!M;-#!M"AM;01M;
  1234. XM,C)#&ULT,6T;6S$[,S!M(" ;6S [,S<[-#%MW-P;6S$[,S!M(" @&ULP.S,W
  1235. XM.S0Q;=P;6S0P;0H;6T$;6S,P0QM;-#%M&ULQ.S,P;2 @&ULP.S,W.S0Q;=S<
  1236. XMW-S<W!M;,3LS,&T@(!M;,#LS-SLT,6T;6S0P;0H;6T$;6S0P0QM;-#%MW-P;
  1237. XM6S$[,S!M(" ;6S [,S<[-#%MW-S<W-S<&ULQ.S,P;2 @&ULT,&T*&UM!&ULU
  1238. XM,D,;6S [,S<[-#!MV]L;6S$[,S!MVQM;-#%M(!M;,#LS-SLT,6W<W-S<W-P;
  1239. XM6S$[,S!M&ULT,&T*&UM!&ULV,D,;6S0Q;2 @(" @(" @(" @(" @(" @&ULT
  1240. XM,&T*&ULT,6T@(" @(" @(" @(" @(" @(" @(" ;6S [,S<[-#!MVQM;,3LS
  1241. XM,&W;&ULT,6T@&ULT,&T*&UM!&ULR-$,;6S [,S<[-#!MV]L;6S$[,S!MVQM;
  1242. XM-#%M(" ;6S [,S<[-#!MVQM;,3LS,&W;"AM;01M;,S%#&ULT,6T@&ULP.S,W
  1243. XM.S0P;=O;&ULQ.S,P;=L;6S0Q;=_?W]\@&ULP.S,W.S0P;=O;"AM;01M;-#)#
  1244. XM&ULQ.S,P;=L;6S0Q;2 ;6S [,S<[-#!MV]L;6S$[,S!MVQM;-#%MW]\;6S0P
  1245. XM;0H;6T$;6S0Y0QM;,#LS-SLT,&W;&ULQ.S,P;=L;6S0Q;2 ;6S [,S<[-#!M
  1246. XMV]L;6S$[,S!MVPH;6T$;6S4U0QM;-#%M(!M;,#LS-SLT,&W;VQM;,3LS,&W;
  1247. XM&ULT,6W?WQM;,#LS-SLT,&W;&ULQ.S,P;=L*&UM!&ULV,T,;6S0Q;2 @(" @
  1248. XM(" @(" @(" @(" ;6S0P;0H;6S0Q;1M;,C%#&ULP.S,W.S0P;=L;6S$[,S!M
  1249. XMVR ;6S [,S=MV]L;6S$[,S!MVR @&ULP.S,W;=L*&UM!&ULS,$,;6S$[,S!M
  1250. XMVR ;6S [,S=MW]_?W]_;&ULQ.S,P;=L@&ULP.S,W;=O;&ULQ.S,P;=L@"AM;
  1251. XM01M;-#1#&ULP.S,W;=O;&ULQ.S,P;=L@(!M;,#LS-VW;&ULQ.S,P;=L@&ULP
  1252. XM.S,W;=O;&ULQ.S,P;=L@"AM;01M;-39#&ULP.S,W;=O;&ULQ.S,P;=L@(!M;
  1253. XM,#LS-VW;&ULQ.S,P;=L*&ULQ-D,;6S [,S=MW-S<W-S;&ULQ.S,P;=L@&ULP
  1254. XM.S,W;=O;&ULQ.S,P.S0W;=\;6S [,S<[-#!MW-S;"AM;01M;,S!#&ULQ.S,P
  1255. XM;=L@&ULP.S,W;=S<W-S<VQM;,3LS,&W;(!M;,#LS-VW;VQM;,3LS,&W;( H;
  1256. XM6T$;6S0T0QM;,#LS-VW;VQM;,3LS,&W;(" ;6S [,S=MVQM;,3LS,&W;(!M;
  1257. XM,#LS-VW;VQM;,3LS,&W;( H;6T$;6S4V0QM;,#LS-VW;VQM;,3LS,#LT-VW?
  1258. XM&ULP.S,W.S0P;=S<VQM;,3LS,&W;"AM;,3=#W]_?W]_?("#?W]_?&ULP.S,W
  1259. XM;=L;6S$[,S!MVR @W]_?W]_?("#?WR @W]\@("#?("#?WR @W]_?"AM;01M;
  1260. XM-C!#W]_?"AM;,C1#&ULP.S,W;=\;6S$[,S [-#=MW-S<W-P;6S0P;=L*"@H*
  1261. X/"@H*"@H*"@H*"AM;,&T*
  1262. Xend
  1263. END_OF_FILE
  1264.   if test 2540 -ne `wc -c <'mbox/etc/ansi.sysinfo.U'`; then
  1265.     echo shar: \"'mbox/etc/ansi.sysinfo.U'\" unpacked with wrong size!
  1266.   else
  1267.     echo shar: Uudecoding \"'mbox/etc/ansi.sysinfo'\" \(1815 characters\)
  1268.     cat mbox/etc/ansi.sysinfo.U | uudecode
  1269.     if test 1815 -ne `wc -c <'mbox/etc/ansi.sysinfo'`; then
  1270.       echo shar: \"'mbox/etc/ansi.sysinfo'\" uudecoded with wrong size!
  1271.     else
  1272.       rm mbox/etc/ansi.sysinfo.U
  1273.     fi
  1274.   fi
  1275.   # end of 'mbox/etc/ansi.sysinfo.U'
  1276. fi
  1277. if test -f 'mbox/etc/ansi.users.U' -a "${1}" != "-c" ; then 
  1278.   echo shar: Will not clobber existing file \"'mbox/etc/ansi.users.U'\"
  1279. else
  1280.   echo shar: Extracting \"'mbox/etc/ansi.users.U'\" \(2078 characters\)
  1281.   sed "s/^X//" >'mbox/etc/ansi.users.U' <<'END_OF_FILE'
  1282. Xbegin 644 mbox/etc/ansi.users
  1283. XM&ULP.S$[,S4[-#=MV]O;V]O;V]L;6S0P;=L;6S0W;=O;V]O;V]O;V]O;V]O;
  1284. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]L;6S0P;0H;6T$;6S4U
  1285. XM0QM;-#=MV]O;V]O;V]O;V]O;V]O;V]O;V]O;VQM;-#!MV]L*&ULT-VW;V]O;
  1286. XMV]O;&ULT,&W;&ULT-VW;V]O;V]O;VQM;,#LS-3LT,&W;VQM;,3LS-3LT-VW?
  1287. XMV]O;&ULP.S,U.S0P;=L*&UM!&ULR,T,;6S$[,S4[-#=MW]O;V]O;V]O;V]O;
  1288. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;V]L;6S0P
  1289. XM;=O;VPH;6S0W;=O;V]O;&ULT,&W;V]L;6S0W;=O;V]O;V]O;&ULP.S,U.S0P
  1290. XM;=O;&ULS-VW;&ULQ.S,U.S0W;=O;VQM;,S<[-#5M(!M;-#!M"AM;01M;,C-#
  1291. XM&ULP.S,W.S0U;=L;6S$[,S4[-#=MV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;
  1292. XMV]O;V]O;V]O;V]O;V]O;V]O;V]O;V]O;&ULT,&T*&UM!&ULW,D,;6S0W;=O;
  1293. XMV]O;&ULT,&W;VPH;6S0W;=O;V]O;VQM;-#!MV]L;6S0W;=O;V]O;V]O;&ULP
  1294. XM.S,U.S0P;=O;&ULS-VW;&ULQ.S,U.S0W;=O;VQM;,#LS-3LT,&W;&ULS-VW;
  1295. XM"AM;01M;,C1#&ULQ.S,U.S0W;=L;6S0U;=_?W]_?WQM;-#=MV]L;6S0U;=_?
  1296. XMW]_?W]\;6S0W;=O;&ULT-6W?W]_?WQM;-#=MV]L;6S0P;0H;6T$;6S0Y0QM;
  1297. XM-#5MW]_?W]_?&ULT-VW;V]O;&ULT-6W?WQM;-#=MV]O;V]O;V]O;V]O;V]O;
  1298. XMVQM;-#!MV]L*&ULT-VW;V]O;V]L;6S0P;=O;&ULT-VW;V]O;V]O;VQM;,#LS
  1299. XM-3LT,&W;VQM;,S=MVQM;,3LS-3LT-VW;V]L;6S [,S4[-#!MVQM;,S=MVPH;
  1300. XM6T$;6S(T0QM;,3LS-3LT-VW;&ULP.S,U.S0P;=O;&ULQ.S,U.S0W;2#<W-S<
  1301. XMVQM;,#LS-3LT,&W;VQM;,3LS-3LT-VT@W-S<&ULT,&T*&UM!&ULS.4,;6S [
  1302. XM,S4[-#!MVQM;,S=MVQM;,3LS-3LT-VW;&ULP.S,U.S0P;=O;&ULQ.S,U.S0W
  1303. XM;2#<W-S;&ULP.S,U.S0P;=O;"AM;01M;-3%#&ULQ.S,U.S0W;2#<W-S<V]O;
  1304. XM&ULT-6W<&ULP.S,W.S0U;=P;6S$[,S4[-#=M(-O;V]O;V]O;V]O;V]O;VQM;
  1305. XM-#!MV]L*W]_?W]_?W]_?W]_?W]_?WQM;,#LS-6W;VQM;,S=MVQM;,3LS-6W?
  1306. XMW]\;6S [,S5MVQM;,S=MVQM;,3LS-6W?&ULP.S,U;=\*&UM!&ULR-D,;6S,W
  1307. XM.S0U;=S<W-P;6S,U.S0P;=L;6S$[,S4[-#=MWQM;-#!MWQM;,#LS-6W;VQM;
  1308. XM,S<[-#5MW-S<W-P;6S0P;=L;6S$[,S5MWPH;6T$;6S0R0QM;,#LS-6W;VQM;
  1309. XM,3LS-3LT-VT@&ULT,&W?W]_?&ULP.S,U;=\;6S,W.S0U;=S<W-P;6S,U.S0P
  1310. XM;=L;6S$[,S4[-#=MWQM;-#!M"AM;01M;-39#&ULT,&W?W]_?W]_?W]_?W]_?
  1311. XMW]_?W]_?W]_?WPH;6S$V0QM;,#LS-6W;VQM;,S<[-#5MWQM;,S4[-#!MW-S<
  1312. XMVQM;,S=MVR ;6S,U;=S<W-S<VQM;,S=MVR ;6S,U;=O;W-S<W-P@(-O;"AM;
  1313. XM01M;-#1#&ULQ.S,U.S0W;2 ;6S1#&ULP.S,U.S0P;=S<W-S<VQM;,S=MVR @
  1314. XM(!M;,S5MV]L;6S,W;=P*&ULQ-T/?W]_?W]_?("#?W]_?W]\@(-_?W]_?W]\@
  1315. XH(-_?(" @("#?W]_?W]\@(" @W]\*"@H*"@H*"@H*"@H*"@H;6S!M"M_?
  1316. Xend
  1317. END_OF_FILE
  1318.   if test 2078 -ne `wc -c <'mbox/etc/ansi.users.U'`; then
  1319.     echo shar: \"'mbox/etc/ansi.users.U'\" unpacked with wrong size!
  1320.   else
  1321.     echo shar: Uudecoding \"'mbox/etc/ansi.users'\" \(1480 characters\)
  1322.     cat mbox/etc/ansi.users.U | uudecode
  1323.     if test 1480 -ne `wc -c <'mbox/etc/ansi.users'`; then
  1324.       echo shar: \"'mbox/etc/ansi.users'\" uudecoded with wrong size!
  1325.     else
  1326.       rm mbox/etc/ansi.users.U
  1327.     fi
  1328.   fi
  1329.   # end of 'mbox/etc/ansi.users.U'
  1330. fi
  1331. if test -f 'mbox/etc/inews.sh' -a "${1}" != "-c" ; then 
  1332.   echo shar: Will not clobber existing file \"'mbox/etc/inews.sh'\"
  1333. else
  1334.   echo shar: Extracting \"'mbox/etc/inews.sh'\" \(1033 characters\)
  1335.   sed "s/^X//" >'mbox/etc/inews.sh' <<'END_OF_FILE'
  1336. X#---------------------------------------------------------------------------
  1337. X#
  1338. X#                      ix/MBox  I N E W S . SH
  1339. X#             Bulletin Board System for UNIX(-Derivations)
  1340. X#
  1341. X#                          Volker Schuermann
  1342. X#                     Wuppertal, FRG, 04.12.1993
  1343. X#
  1344. X#---------------------------------------------------------------------------
  1345. X# This files forwards a new article to INEWS. The article yet includes a
  1346. X# fairly complete header.
  1347. X#---------------------------------------------------------------------------
  1348. X# Dieses Script uebergibt einen neuen Artikel an INEWS. Dieser Artikel
  1349. X# enthaelt bereits einen (fast) kompletten Header.
  1350. X#---------------------------------------------------------------------------
  1351. X# Parameters:
  1352. X#
  1353. X# $1  ->  Newsgroup, in which the article should be published
  1354. X# $2  ->  File including the new article (see above)
  1355. X# 
  1356. X# Example:
  1357. X#
  1358. X# /usr/local/lib/news/inews -h < $2
  1359. X#
  1360. X#---------------------------------------------------------------------------
  1361. X
  1362. X/usr/local/lib/news/inews -h < $2
  1363. X
  1364. END_OF_FILE
  1365.   if test 1033 -ne `wc -c <'mbox/etc/inews.sh'`; then
  1366.     echo shar: \"'mbox/etc/inews.sh'\" unpacked with wrong size!
  1367.   fi
  1368.   # end of 'mbox/etc/inews.sh'
  1369. fi
  1370. if test -f 'mbox/etc/list.editors' -a "${1}" != "-c" ; then 
  1371.   echo shar: Will not clobber existing file \"'mbox/etc/list.editors'\"
  1372. else
  1373.   echo shar: Extracting \"'mbox/etc/list.editors'\" \(961 characters\)
  1374.   sed "s/^X//" >'mbox/etc/list.editors' <<'END_OF_FILE'
  1375. X#---------------------------------------------------------------------------
  1376. X#
  1377. X#                  ix/MBox  L I S T  . E D I T O R S
  1378. X#             Bulletin Board System for UNIX(-Derivations)
  1379. X#
  1380. X#                          Volker Schuermann
  1381. X#                     Wuppertal, FRG, 04.12.1993
  1382. X#
  1383. X#---------------------------------------------------------------------------
  1384. X# Diese Datei enthaelt die Liste der verfuegbaren Editoren. Die beiden 
  1385. X# systemeigenen Editoren "LED" und "WENDY" muessen die Liste anfuehren!
  1386. X#---------------------------------------------------------------------------
  1387. X# This list contains the editors, which users may use. Note that "LED" 
  1388. X# and "WENDY" have to lead.
  1389. X#---------------------------------------------------------------------------
  1390. X
  1391. XName            Path
  1392. X============================================================================
  1393. XLed        /usr/bin/bled
  1394. XWendy        /usr/bin/wendy
  1395. XJoe        /usr/bin/joe
  1396. XVi        /usr/bin/vi
  1397. XEmacs        /usr/bin/emacs
  1398. X
  1399. END_OF_FILE
  1400.   if test 961 -ne `wc -c <'mbox/etc/list.editors'`; then
  1401.     echo shar: \"'mbox/etc/list.editors'\" unpacked with wrong size!
  1402.   fi
  1403.   # end of 'mbox/etc/list.editors'
  1404. fi
  1405. if test -f 'mbox/etc/list.packers' -a "${1}" != "-c" ; then 
  1406.   echo shar: Will not clobber existing file \"'mbox/etc/list.packers'\"
  1407. else
  1408.   echo shar: Extracting \"'mbox/etc/list.packers'\" \(1515 characters\)
  1409.   sed "s/^X//" >'mbox/etc/list.packers' <<'END_OF_FILE'
  1410. X#---------------------------------------------------------------------------
  1411. X#
  1412. X#                  ix/MBox  L I S T  . P A C K E R S
  1413. X#             Bulletin Board System for UNIX(-Derivations)
  1414. X#
  1415. X#                          Volker Schuermann
  1416. X#                     Wuppertal, FRG, 04.12.1993
  1417. X#
  1418. X#---------------------------------------------------------------------------
  1419. X# In dieser Datei befindet sich eine Liste von Komprimieren und Archi-   
  1420. X# vierern, ueber die Artikel im Download-Modus gepackt werden koennen.      
  1421. X#
  1422. X# Packer    Kommando         Befehl TAR-Archiv     Endung          
  1423. X# =======================================================================
  1424. X# Compress4.3    /usr/bin/compress    -b13    +    .Z
  1425. X# Compress(16)    /usr/bin/compress    -b16    +    .Z
  1426. X# Lharc1.02    /usr/bin/lharc        a    -    .lzh
  1427. X# Zoo2.1    /usr/bin/zoo        a    -    .zoo
  1428. X# Zip1.0     /usr/bin/zip        -9    -    .zip
  1429. X# Freeze1.1    /usr/bin/freeze        ?    +    .F
  1430. X# Freeze2.4    /usr/bin/freeze24    ?    +    .F
  1431. X# GZip1.2.2    /usr/bin/gnuzip        -6    +    .z    
  1432. X#    
  1433. X#---------------------------------------------------------------------------
  1434. X# The following packers/archivers are used to collect articles of normal
  1435. X# newsgroups for downloading by users.
  1436. X#---------------------------------------------------------------------------
  1437. X
  1438. XPacker          Path                    Cmd    TAR?     Suffix
  1439. X==============================================================
  1440. XLharc1.02    /usr/bin/lharc        a    -    .lzh
  1441. XZoo2.1        /usr/local/bin/zoo    a    -    .zoo
  1442. XZip1.9         /usr/bin/zip        -9    -    .zip
  1443. XFreeze2.3.3    /usr/bin/freeze     ?    +    .F
  1444. XGZip1.2.4    /usr/bin/gnuzip        -6    +    .z        
  1445. END_OF_FILE
  1446.   if test 1515 -ne `wc -c <'mbox/etc/list.packers'`; then
  1447.     echo shar: \"'mbox/etc/list.packers'\" unpacked with wrong size!
  1448.   fi
  1449.   # end of 'mbox/etc/list.packers'
  1450. fi
  1451. if test -f 'mbox/etc/list.terminals' -a "${1}" != "-c" ; then 
  1452.   echo shar: Will not clobber existing file \"'mbox/etc/list.terminals'\"
  1453. else
  1454.   echo shar: Extracting \"'mbox/etc/list.terminals'\" \(984 characters\)
  1455.   sed "s/^X//" >'mbox/etc/list.terminals' <<'END_OF_FILE'
  1456. X#---------------------------------------------------------------------------
  1457. X#
  1458. X#                ix/MBox  L I S T . T E R M I N A L S
  1459. X#             Bulletin Board System for UNIX(-Derivations)
  1460. X#
  1461. X#                          Volker Schuermann
  1462. X#                     Wuppertal, FRG, 03.01.1994
  1463. X#
  1464. X#---------------------------------------------------------------------------
  1465. X# Hier MUESSEN drei Terminals/Terminal-Emulationen angegeben werden. Diese
  1466. X# werden zusaetzlich zu den fuenf vordefinierten Terminals unterstuetzt.
  1467. X#---------------------------------------------------------------------------
  1468. X# You HAVE to offer three additional terminal emulations in this file. These
  1469. X# terminals will be offered together with five predefined emulations.
  1470. X#---------------------------------------------------------------------------
  1471. X
  1472. XTermcap-Entry    Description
  1473. X============================================================================
  1474. Xtvi950         TeleVideo 950
  1475. Xlap24        Laptop 24
  1476. Xqvt101        Qume QVT-101
  1477. X
  1478. X
  1479. X
  1480. END_OF_FILE
  1481.   if test 984 -ne `wc -c <'mbox/etc/list.terminals'`; then
  1482.     echo shar: \"'mbox/etc/list.terminals'\" unpacked with wrong size!
  1483.   fi
  1484.   # end of 'mbox/etc/list.terminals'
  1485. fi
  1486. if test -f 'mbox/etc/rmail.sh' -a "${1}" != "-c" ; then 
  1487.   echo shar: Will not clobber existing file \"'mbox/etc/rmail.sh'\"
  1488. else
  1489.   echo shar: Extracting \"'mbox/etc/rmail.sh'\" \(1408 characters\)
  1490.   sed "s/^X//" >'mbox/etc/rmail.sh' <<'END_OF_FILE'
  1491. X#---------------------------------------------------------------------------
  1492. X#
  1493. X#                      ix/MBox  R M A I L . S H
  1494. X#             Bulletin Board System for UNIX(-Derivations)
  1495. X#
  1496. X#                          Volker Schuermann
  1497. X#                     Wuppertal, FRG, 04.12.1993
  1498. X#
  1499. X#---------------------------------------------------------------------------
  1500. X# Dieses Script uebergibt eine "persoenliche Mail" und eine Empfaenger-
  1501. X# Adresse an das Programm RMAIL. Die "persoenliche Mail" enthaelt bereits
  1502. X# einen (fast) kompletten Header !
  1503. X#
  1504. X# Bei Verwendung von SMAIL sollte "config.mbox" speziell fuer die Unter-
  1505. X# drueckung der SMAIL-Message-ID etc. konfiguriert werden.
  1506. X#---------------------------------------------------------------------------
  1507. X# This is the interface between ix/MBox' internal mailer and your systems
  1508. X# mailer RMAIL. The mail (i.e. the file, containig the mail) has yet a
  1509. X# nearly complete header.
  1510. X#
  1511. X# If you are using SMAIL (a link of SMAIL to RMAIL), than you should con-
  1512. X# figure "config.mbox" to stop SMAIL message IDs etc. (see below)
  1513. X#---------------------------------------------------------------------------
  1514. X# Parameters:
  1515. X#
  1516. X# $1  ->  File containing the mail
  1517. X# $2  ->  Receiver of the mail
  1518. X# 
  1519. X# Example:
  1520. X#
  1521. X# rmail -d -i $1 $2
  1522. X#
  1523. X# Or:
  1524. X# 
  1525. X# smail -i -C /usr/local/lib/smail/config.mbox $2 < $1
  1526. X#
  1527. X# config.mbox ->
  1528. X# received_field
  1529. X# error_copy_postmaster   
  1530. X
  1531. Xsmail -i $2 < $1
  1532. END_OF_FILE
  1533.   if test 1408 -ne `wc -c <'mbox/etc/rmail.sh'`; then
  1534.     echo shar: \"'mbox/etc/rmail.sh'\" unpacked with wrong size!
  1535.   fi
  1536.   # end of 'mbox/etc/rmail.sh'
  1537. fi
  1538. if test -f 'mbox/etc/sysinfo.U' -a "${1}" != "-c" ; then 
  1539.   echo shar: Will not clobber existing file \"'mbox/etc/sysinfo.U'\"
  1540. else
  1541.   echo shar: Extracting \"'mbox/etc/sysinfo.U'\" \(1815 characters\)
  1542.   sed "s/^X//" >'mbox/etc/sysinfo.U' <<'END_OF_FILE'
  1543. Xbegin 644 mbox/etc/sysinfo
  1544. XM0V]N=&5N="U4>7!E.B!T97AT+W)I8VAT97AT.R!C:&%R<V5T/6ES;RTX.#4Y
  1545. XM+3$*1&EE<V4@36%I;&)O>"!LY'5F="!A=68@96EN96T@-C8@34AZ(#0X-F5R
  1546. XM(&E.5$5,+5)E8VAN97(@;6ET(&-A+B U,# @34(\;FP^"E!L871T96YK87!A
  1547. XM>FETY'0L(#$V($U"($AA=7!T<W!E:6-H97(@=6YD(#8T,"!-0B!#1%)/32X\
  1548. XM;FP^"CQN;#X*16EN9V5S971Z="!W:7)D(&1A<R!"971R:65B<W-Y<W1E;2!,
  1549. XM24Y56"!I;B!D97(@,"XY.2XQ,W$@5F5R<VEO;BX@1&%S($UA:6PM/&YL/@IB
  1550. XM;WAP<F]G<F%M;2!I<W0@:7@O34)O>"P@96EN92!0<F]D=6MT(&%U<R!D97(@
  1551. XM4'5B;&EC($1O;6%I;BX\;FP^"CQN;#X*17,@=V5R9&5N('IW96D@36]D96TM
  1552. XM4&]R=',@86YG96)O=&5N.CQN;#X*/&YL/@I0;W)T,3H@(%534F]B;W1I8W,@
  1553. XM0V]U<FEE<B!(4U0@(" S,# M,30N-&L@(" @,#(P,B @-#8R,3$T/&YL/@I0
  1554. XM;W)T,CH@(%IY6$5,(%4M,30Y-D4@(%8N,S)B:7,@(" S,# M,38N.&L@(" @
  1555. XM,#(P,B @-#8V,#(S-#QN;#X*/&YL/@H\8V5N=&5R/CQ";VQD/BTM+2TM+2TM
  1556. XM+2TM+2TM+2TM+2TM+2TM+2TM/"]";VQD/CPO8V5N=&5R/CQN;#X*/&YL/@I/
  1557. XM8G=O:&P@9&EE<V4@36%I;&)O>"!N:6-H="!K;VUM97)Z:65L;"!B971R:65B
  1558. XM96X@=VER9"P@<VEN9"!E:6YI9V4@9&5R/&YL/@IA;F=E8F]T96YE;B!$:65N
  1559. XM<W1E(&=E8OQH<F5N<&9L:6-H=&EG+CQN;#X*/&YL/@H)/$)O;&0^1T5"W$A2
  1560. XM14Y&4D5)/"]";VQD/B!I<W0Z/&YL/@H\;FP^"@EO("!D:64@0F5N=71Z='5N
  1561. XM9R!D97(@36%I;&)O>#QN;#X*"6\@(&1A<R!P<FEV871E(%!O<W1F86-H/&YL
  1562. XM/@H);R @9&EE($YU='IU;F<@9&5R('9E<G-C:&EE9&5N96X@4$0M07)C:&EV
  1563. XM93QN;#X*/&YL/@H)/$)O;&0^1T5"W$A214Y01DQ)0TA424<\+T)O;&0^(&ES
  1564. XM=#H\;FP^"CQN;#X*(" @(" @("!O("!D:64@<')I=F%T92!0;W-T(&%N($5M
  1565. XM<&;D;F=E<B!A=7-S97)H86QB(&1E<B!-86EL8F]X/&YL/@H@(" @(" @(&\@
  1566. XM(&1I92!496EL;F%H;64@86X@9&5N(&YA=&EO;F%L96X@=6YD(&EN=&5R;F%T
  1567. XM:6]N86QE;B!.15=3+4=R=7!P96X\;FP^/&YL/@H\;FP^/&YL/@I'96YA=65R
  1568. XM92!);F9O<FUA=&EO;F5N('5N9"!A:W1U96QL92#$;F1E<G5N9V5N('=E<F1E
  1569. XM;B!R96=E;&WD<W-I9R!I;3QN;#X\;FP^"D)R971T("=L;V-A;"YI;F9O)R!B
  1570. XM96MA;FYT9V5G96)E;BX\;FP^/&YL/@H\;FP^/&YL/@H\8V5N=&5R/CQ";VQD
  1571. XM/BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM/"]";VQD/CPO8V5N=&5R/CQN
  1572. XA;#X\;FP^"D-O;G1E;G0M5'EP93H@=&5X="]P;&%I;CL*
  1573. Xend
  1574. END_OF_FILE
  1575.   if test 1815 -ne `wc -c <'mbox/etc/sysinfo.U'`; then
  1576.     echo shar: \"'mbox/etc/sysinfo.U'\" unpacked with wrong size!
  1577.   else
  1578.     echo shar: Uudecoding \"'mbox/etc/sysinfo'\" \(1293 characters\)
  1579.     cat mbox/etc/sysinfo.U | uudecode
  1580.     if test 1293 -ne `wc -c <'mbox/etc/sysinfo'`; then
  1581.       echo shar: \"'mbox/etc/sysinfo'\" uudecoded with wrong size!
  1582.     else
  1583.       rm mbox/etc/sysinfo.U
  1584.     fi
  1585.   fi
  1586.   # end of 'mbox/etc/sysinfo.U'
  1587. fi
  1588. if test -f 'mbox/src/CROSSREF' -a "${1}" != "-c" ; then 
  1589.   echo shar: Will not clobber existing file \"'mbox/src/CROSSREF'\"
  1590. else
  1591.   echo shar: Extracting \"'mbox/src/CROSSREF'\" \(3043 characters\)
  1592.   sed "s/^X//" >'mbox/src/CROSSREF' <<'END_OF_FILE'
  1593. X#---------------------------------------------------------------------------
  1594. X#
  1595. X#                      ix/MBox  C R O S S R E F
  1596. X#             Bulletin Board System for UNIX(-Derivations)
  1597. X#
  1598. X#                          Volker Schuermann
  1599. X#                     Wuppertal, FRG, 04.12.1993
  1600. X#
  1601. X#---------------------------------------------------------------------------
  1602. X
  1603. Xadmin()                admin.c
  1604. Xalltime()            pd.c
  1605. Xansage()            lesen.c
  1606. Xansi()                 tools.c
  1607. Xanzeigen()            lesen2.c
  1608. Xarchivieren()            pd.c
  1609. Xauslastung()            pd.c
  1610. Xbaudrate()            baudrate.c
  1611. Xbef()                befehl.c
  1612. Xbrett()                misc2.c
  1613. Xbrief()                mail.c, xmd.c
  1614. Xbigcopy()            tools.c
  1615. Xboerse()            weiterl.c
  1616. Xcarboncopy()            weiterl.c
  1617. Xcdrom()                cdrom.c
  1618. Xcd_download()            cdrom.c
  1619. Xcheckdomaintype()        lesen.c
  1620. Xchk_newsgrp()            misc2.c
  1621. Xcheckit()            main.c
  1622. Xclearline()            tools.c
  1623. Xcontrol()            control.c
  1624. Xcrypted()            tools.c
  1625. Xctrlx()                ctrlx.c
  1626. Xcut_arg()            main.c
  1627. Xcut_bef()            main.c
  1628. Xdateconv()            tools.c
  1629. Xdatereconv()            tools.c
  1630. Xdownload()            pd.c
  1631. Xdrucken()            uudecode.c
  1632. Xdstock()            dstock.c
  1633. Xedit()                suchen.c
  1634. Xelapsed_time()            xmd.c
  1635. Xfaces()                faces.c
  1636. Xfetch_receipy()            misc2.c
  1637. Xfinger()            portinfo.c
  1638. Xfixoutput()            main.c
  1639. Xgames()                games.c
  1640. Xgetch()                getch.c
  1641. Xgetint()            getline.c
  1642. Xgetline()            getline.c
  1643. Xgetsite()            lesen.c
  1644. Xheadblock()            main.c
  1645. Xheadline()            tools.c
  1646. Xhelp()                help.c
  1647. Xinhalt2()            lesen2.c
  1648. Xinit()                main.c
  1649. Xinit_user()            intro.c
  1650. Xintro()                intro.c
  1651. Xisin()                tools.c
  1652. Xis_subscribed()            subscribe.c
  1653. Xiso_convert()            show.c
  1654. Xiso_line()            show.c
  1655. Xkombinieren()            suchen.c
  1656. Xlength()            tools.c
  1657. Xlesen()                lesen.c
  1658. Xlesen2()            lesen2.c
  1659. Xloeschen()            misc2.c
  1660. Xloeschen2()            lesen2.c
  1661. Xlogout()            main.c
  1662. Xloop()                loop.c
  1663. Xmail_status()            lesen2.c
  1664. Xmain()                main.c
  1665. Xmaybe_locked()            tools.c
  1666. Xmblock()            tools.c
  1667. Xmbunlock()            tools.c
  1668. Xmore()                more.c
  1669. Xmoderated()            uudecode.c
  1670. Xmoving()            postfach.c
  1671. Xmkix()                pd.c
  1672. Xmydate()            tools.c
  1673. Xmytime()            tools.c
  1674. Xnerror()            nerror.c & derror.c
  1675. Xnew_user_dir()            portinfo.c
  1676. Xnoctrlx()            ctrlx.c
  1677. Xnum_stripped()            tools.c
  1678. Xpd()                pd.c
  1679. Xperms()                tools.c
  1680. Xplan()                lesen.c
  1681. Xport()                portinfo.c
  1682. Xpostfach()            postfach.c
  1683. Xpreview()            uudecode.c
  1684. Xprf()                misc.c
  1685. Xpruefe()            misc.c
  1686. Xquoted_printable()        show.c
  1687. Xrates()                main.c
  1688. Xrebuild_aliases            portinfo.c
  1689. Xrename()            tools.c
  1690. Xrichtext()            show.c
  1691. Xsaver()                uudecode.c
  1692. Xscanner()            misc.c
  1693. Xschreiben()            misc.c
  1694. Xsetup()                  admin.c
  1695. Xsetup_get()            admin.c
  1696. Xshortname()            tools.c
  1697. Xshow()                show.c
  1698. Xshow_level()            portinfo.c
  1699. Xsetstty()            getch.c
  1700. Xsecurity_ed()            suchen.c
  1701. Xsichtbar()            lesen2.c
  1702. Xsigcatch()            loop.c
  1703. Xsmalltalk()            smalltalk.c
  1704. Xsm_*()                smalltext.c
  1705. Xstatus()            pd.c
  1706. Xstatistik()            pd.c
  1707. Xstrcomp()            tools.c
  1708. Xstrcopy()            tools.c
  1709. Xstripped()            tools.c
  1710. Xsubb()                misc2.c
  1711. Xsubscribe()            subscribe.c
  1712. Xsuchen()            suchen.c
  1713. Xtimeconv()            tools.c
  1714. Xtimereconv()            tools.c
  1715. Xtty()                 tools.c
  1716. Xttyna()                tools.c
  1717. Xunterschrift()            lesen.c
  1718. Xupcased()            tools.c
  1719. Xuser_aendern()            admin.c
  1720. Xuser_anzeigen()            admin.c
  1721. Xuser_loeschen()            admin.c
  1722. Xuserliste()            portinfo.c
  1723. Xuudecode()            uudecode.c
  1724. Xwait_until_keypressed()        admin.c
  1725. Xweiterleiten()            weiterl.c
  1726. Xwhoami()            tools.c
  1727. Xwhodo()                control.c
  1728. Xyesno()                getline.c
  1729. END_OF_FILE
  1730.   if test 3043 -ne `wc -c <'mbox/src/CROSSREF'`; then
  1731.     echo shar: \"'mbox/src/CROSSREF'\" unpacked with wrong size!
  1732.   fi
  1733.   # end of 'mbox/src/CROSSREF'
  1734. fi
  1735. if test -f 'mbox/src/HISTORY' -a "${1}" != "-c" ; then 
  1736.   echo shar: Will not clobber existing file \"'mbox/src/HISTORY'\"
  1737. else
  1738.   echo shar: Extracting \"'mbox/src/HISTORY'\" \(2770 characters\)
  1739.   sed "s/^X//" >'mbox/src/HISTORY' <<'END_OF_FILE'
  1740. X#---------------------------------------------------------------------------
  1741. X#
  1742. X#                       ix/MBox  H I S T O R Y
  1743. X#             Bulletin Board System for UNIX(-Derivations)
  1744. X#
  1745. X#                          Volker Schuermann
  1746. X#                     Wuppertal, FRG, 04.12.1993
  1747. X#
  1748. X#---------------------------------------------------------------------------
  1749. X
  1750. X20.04.1991  ->  Erste Versuche einen NEWS-Reader im Stil der alten "PC-Boxen"
  1751. X        zu basteln (sind positiv verlaufen)
  1752. X
  1753. X21.04.1991  ->  Schreiben an NGs via PNEWS                 
  1754. X
  1755. X22.04.1991  ->  REPLY via PNEWS
  1756. X
  1757. X23.04.1991  ->  SH-unabhaengiges Accounting
  1758. X
  1759. X26.04.1991  ->  Persoenliche Mail lesen, schreiben, beantworten
  1760. X
  1761. X11.05.1991  ->  Inhalt/Datum, Status
  1762. X
  1763. X01.06.1991  ->  Vorbereitung fuer die Portierung
  1764. X
  1765. X02.06.1991  ->  Erste BETA-Test Version an die Portierer/Tester verschickt
  1766. X
  1767. X18.06.1991  ->  Makro-Befehle implementiert
  1768. X
  1769. X15.08.1991  ->  SVR3 einigermassen angepasst, LOCK-Mechanismus eingebaut,
  1770. X        NNPOST und RMAIL ermoeglicht, versuchweise _SYS_ACCOUNT
  1771. X        integriert
  1772. X
  1773. X21.09.1991  ->  Scanner-Datum beim LOGOUT aktuallisieren, nicht mehr bei
  1774. X        init_user()
  1775. X
  1776. X21.10.1991  ->  Option fuer Online-Spiele implementiert
  1777. X
  1778. X26.10.1991  ->  Endlich ein "anstaendiges" Makefile:-)
  1779. X
  1780. X12.11.1991  ->  Die Anspassung an SVR3 laeuft auf Hochtouren
  1781. X
  1782. X16.11.1991  ->  Referenzversion 1.6.0 ueber "sub.os.minix" gepostet
  1783. X
  1784. X17.11.1991  ->  Patchlevel PL1 fertiggestellt
  1785. X           
  1786. X27.11.1991  ->  Patchlevel PL3 mit schnellerem MB-DAEMON ausgeliefert
  1787. X
  1788. X06.12.1991  ->  Umgestellt auf RMAIL & INEWS (Header mit Refs. etc.)
  1789. X
  1790. X28.12.1991  ->  Internationale Version (DEFINES, README, etc.) ausgeliefert
  1791. X
  1792. X04.01.1992  ->  MAIL- & NEWS-Header editierbar (Followup etc.)
  1793. X
  1794. X20.02.1992  ->  Eigener DOWNLOAD-Befehl. MB-DAEMON erstellt LIB online (opt.)
  1795. X
  1796. X09.05.1992  ->  RTF (Richtext Format) implementiert
  1797. X
  1798. X24.05.1992  ->  Strict-Accounting eingebaut / SVR4-Port funxt (!) / 1.6 PL9f
  1799. X
  1800. X06.06.1992  ->  Version 1.6 PL10 ausgeliefert
  1801. X
  1802. X04.07.1992  ->  Version 1.6 PL10e ausgeliefert
  1803. X
  1804. X10.08.1992  ->  Version 1.6 PL10a ist ueber FTP verfuegbar: <nic.funet.fi>
  1805. X
  1806. X10.11.1992  ->  Umlautkonvertierung eingebaut (Patchlevel 1.6 PL10j2)
  1807. X
  1808. X09.01.1993  ->  RTF-Editor WENDY, NEWUSER-Mail an Root (Version 1.6 PL10j7)
  1809. X
  1810. X17.01.1993  ->  Version 1.6 PL10j7 an "comp.sources.misc" ausgeliefert
  1811. X
  1812. X19.07.1993  ->  UUDECODE, Mailstatus (PMs)
  1813. X
  1814. X01.08.1993  ->  SUBSCRIBE, alle Routinen ueberarbeitet (Version 1.6 PL11r5)
  1815. X
  1816. X27.10.1993  ->  ROT13 implementiert (Version 1.6 PL11r7)
  1817. X
  1818. X19.11.1993  ->  X-DELIVERY-TIME, SMALLTALK (Version 1.6 PL12r1)
  1819. X
  1820. X04.12.1993  ->  Fast komplett "internationalisiert" (Version 2.0 PL10r1)
  1821. X
  1822. X06.12.1993  ->  Sicherheitsluecke bzgl. VI, Mined und MicroEmacs geschlossen
  1823. X
  1824. X01.03.1994  ->  Entwicklung eingefroren, Version 2.1 PL94(fz)3 ausgeliefert
  1825. END_OF_FILE
  1826.   if test 2770 -ne `wc -c <'mbox/src/HISTORY'`; then
  1827.     echo shar: \"'mbox/src/HISTORY'\" unpacked with wrong size!
  1828.   fi
  1829.   # end of 'mbox/src/HISTORY'
  1830. fi
  1831. if test -f 'mbox/src/bled.doc' -a "${1}" != "-c" ; then 
  1832.   echo shar: Will not clobber existing file \"'mbox/src/bled.doc'\"
  1833. else
  1834.   echo shar: Extracting \"'mbox/src/bled.doc'\" \(1399 characters\)
  1835.   sed "s/^X//" >'mbox/src/bled.doc' <<'END_OF_FILE'
  1836. X(B)LED ist ein zeilenorientierer Editor (Text-Erfassungssystem), der Texte
  1837. Xbeliebiger Groesse verarbeiten kann.
  1838. X
  1839. XEr verwendet verschiedene Eingabemodi, die jeweils am Prefix vor der
  1840. XZeilennummer zu identifizieren sind:
  1841. X
  1842. XL0000 Text-Zeile ...                  # Lese-Modus (".l" und ".L")
  1843. XA0000 Text-Zeile ...                  # Anhaenge-Modus (".a")
  1844. XI0000 Text-Zeile ...                  # Einfuge-Modus (".i")
  1845. XK0000 Text-Zeile ...                  # Korrektur-Modus (".k");
  1846. X
  1847. XWird ein neuer Text erfasst, ist der Anhaenge-Modus aktiv. Mit dem
  1848. XBefehl ".l" (bzw. ".L") kann man sich den bereits eingegeben Text
  1849. Xanzeigen lassen.
  1850. X
  1851. XMuss eine Zeile korrigiert werden, wird mit dem Befehl ".k ZEILE" die
  1852. Xentsprechende Zeile (ZEILE) nochmals angezeigt und kann ueberarbeitet
  1853. Xwerden.
  1854. X
  1855. XSoll zwischen den bereits erfassten Zeilen neuer Text eingegeben werden,
  1856. Xmuss mit ".i ZEILE" in den Einfuege-Modus gewechselt werden. Von nun 
  1857. Xan werden die Eingaben zwischen "ZEILE -1" und "ZEILE" eingefuegt. Die
  1858. XNummerierung der auf "ZEILE" folgenden Zeilen wird automatisch angepasst.
  1859. XDer Einfuege-Modus wird mit ".a" beendet. Danach ist der Anhaenge-Modus
  1860. Xaktiv, und alle Eingaben werden ans Ende des Textes angehaengt.
  1861. X
  1862. XSollen Zeilen komplett entfernt werden, kommt der Befehl ".d" zum Einsatz.
  1863. XWerden keine Zeilennummern angegeben, wird der gesamte Text geloescht !!!
  1864. X
  1865. XBeendet und gesichert wird die Eingabe mit "." !
  1866. END_OF_FILE
  1867.   if test 1399 -ne `wc -c <'mbox/src/bled.doc'`; then
  1868.     echo shar: \"'mbox/src/bled.doc'\" unpacked with wrong size!
  1869.   fi
  1870.   # end of 'mbox/src/bled.doc'
  1871. fi
  1872. if test -f 'mbox/src/control.c' -a "${1}" != "-c" ; then 
  1873.   echo shar: Will not clobber existing file \"'mbox/src/control.c'\"
  1874. else
  1875.   echo shar: Extracting \"'mbox/src/control.c'\" \(2273 characters\)
  1876.   sed "s/^X//" >'mbox/src/control.c' <<'END_OF_FILE'
  1877. X/* ix/MBox (control.c) by Volker Schuermann, 04.12.1993
  1878. X
  1879. X   This C source code contains the following functions:
  1880. X
  1881. X   #CT control()          detailed log of users activities
  1882. X   #WD whodo()            builds a file for the "who" commands 
  1883. X   #PF profile()          debugging only - I need it, you don't!
  1884. X
  1885. X   Contact <volkers@unnet.wupper.de> for help! */
  1886. X
  1887. X
  1888. X#include <stdio.h>
  1889. X
  1890. X#include "mbox.h"
  1891. X
  1892. X
  1893. X/* #CT - Creating a log output.
  1894. X
  1895. X   The [text] is shown together with terminal port and other data.
  1896. X
  1897. X   If [mode] is < '99', the output is shown on CONSOLE, otherwise
  1898. X   it's send to CPRN. See "mbox.h" for further information. */  
  1899. X
  1900. XFILE *contfp = NULL;
  1901. X
  1902. Xvoid control(text, mode)
  1903. XUNSIGNED char text[];
  1904. Xint mode;
  1905. X{
  1906. X  if (mode < 99) {
  1907. X
  1908. X    if(USER.level < 10){
  1909. X        contfp = fopen(CONSOLE_REDIRECT, "a");
  1910. X        if (contfp == NULL) {
  1911. X            printf("\n\n%s [%s]\n\n", CTL01_MSG, CONSOLE_REDIRECT);
  1912. X            exit(-1);
  1913. X        }
  1914. X#ifdef _DATESTAMP
  1915. X        fprintf(contfp, "%s %s <%s>  %s\n", mydate(1), mytime(1), ttyna(), text);
  1916. X#else
  1917. X        fprintf(contfp, "MBOX: (%s:) %s\n", ttyna(), text);
  1918. X#endif
  1919. X        fflush(contfp);
  1920. X        fclose(contfp);
  1921. X    }
  1922. X
  1923. X  }
  1924. X  if (mode == 99) {
  1925. X    contfp = fopen(CPRN, "a");
  1926. X    if (contfp == NULL) {
  1927. X        printf("\n\n%s [%s]\n\n", CTL01_MSG, CPRN);
  1928. X        exit(-1);
  1929. X    }
  1930. X    fprintf(contfp, "\n%s  -  %s\n", mydate(1), mytime(1));
  1931. X    fprintf(contfp, "MBOX: (%s:) %s\n", ttyna(), text);
  1932. X    fflush(contfp);
  1933. X    fclose(contfp);
  1934. X  }
  1935. X}
  1936. X
  1937. X
  1938. X
  1939. X
  1940. X
  1941. X/* #WD - Building up a file for later user by "portinfo()".
  1942. X
  1943. X   The argument [text] contains users latest activity. */
  1944. X
  1945. Xvoid whodo(text)
  1946. XUNSIGNED char text[];
  1947. X{
  1948. X  FILE *fp;
  1949. X  UNSIGNED char s[STRING];
  1950. X
  1951. X
  1952. X  sprintf(s, "%s/etc/%s.", HOME, (UNSIGNED char *) ttyna());
  1953. X
  1954. X  fp = fopen(s, "w");
  1955. X  if (fp == NULL) {
  1956. X    nerror("control.c", 44, "whodo", "Can't write to", s);
  1957. X  }
  1958. X  fputs(text, fp);
  1959. X  fclose(fp);
  1960. X}
  1961. X
  1962. X
  1963. X
  1964. X
  1965. X/* #PF - Profiling the performance of the C code.
  1966. X
  1967. X   The call of [function] (contains the name of a C function inside the
  1968. X   BBS) is dumped. */
  1969. X
  1970. XFILE *profile_file = NULL;
  1971. X
  1972. Xvoid profile( function )
  1973. XUNSIGNED char function[];
  1974. X{
  1975. X  if(function[0] == '+'){
  1976. X    profile_file = fopen( "/tmp/profile", "w" );
  1977. X    if(profile_file == NULL){
  1978. X        printf("SHIT");
  1979. X        exit(0);
  1980. X    }
  1981. X    return;
  1982. X  }
  1983. X
  1984. X  if(function[0] == '-'){
  1985. X    fclose( profile_file );
  1986. X    return;
  1987. X  }
  1988. X
  1989. X  fprintf(profile_file, "%s\n", function);  
  1990. X}
  1991. END_OF_FILE
  1992.   if test 2273 -ne `wc -c <'mbox/src/control.c'`; then
  1993.     echo shar: \"'mbox/src/control.c'\" unpacked with wrong size!
  1994.   fi
  1995.   # end of 'mbox/src/control.c'
  1996. fi
  1997. if test -f 'mbox/src/ctrlx.c' -a "${1}" != "-c" ; then 
  1998.   echo shar: Will not clobber existing file \"'mbox/src/ctrlx.c'\"
  1999. else
  2000.   echo shar: Extracting \"'mbox/src/ctrlx.c'\" \(1116 characters\)
  2001.   sed "s/^X//" >'mbox/src/ctrlx.c' <<'END_OF_FILE'
  2002. X/* ix/MBox (ctrlx.c) by Volker Schuermann, 04.12.1993
  2003. X
  2004. X   This C source code contains the following functions:
  2005. X
  2006. X   #CX ctrlx()            set QUIT (SIGQIUT) to CTRL-X (24)
  2007. X   #NX noctrlx()          restore QUIT
  2008. X
  2009. X   Contact <volkers@unnet.wupper.de> for help! */
  2010. X
  2011. X
  2012. X
  2013. X
  2014. X
  2015. X
  2016. X
  2017. X
  2018. X#ifdef _SYS7    /* UNIX System 7  (MINIX, COHERENT, ...) */
  2019. X
  2020. X#include  <sgtty.h>
  2021. Xstatic struct tchars newtc, oldtc;
  2022. X
  2023. X#else        /* UNIX System V  (UNIX, XENIX, ESIX, ...) */
  2024. X
  2025. X#ifdef _LINUX
  2026. X#include  <termio.h>
  2027. X#else
  2028. X#include  <sys/termio.h> 
  2029. X#endif
  2030. Xstatic struct termio newtc, oldtc;
  2031. X
  2032. X#endif
  2033. X
  2034. X
  2035. X
  2036. X
  2037. X
  2038. X/* #CX - If user sends CTRL-X, UNIX receives SIGABRT. */
  2039. X
  2040. Xvoid ctrlx()
  2041. X{
  2042. X
  2043. X#ifdef _SYS7
  2044. X
  2045. X  ioctl(0, TIOCGETC, (struct sgttyb *) &oldtc);
  2046. X  newtc = oldtc;
  2047. X  newtc.t_quitc = 24;
  2048. X  ioctl(0, TIOCSETC, (struct sgttyb *) &newtc);
  2049. X
  2050. X#else
  2051. X
  2052. X  ioctl(0, TCGETA, (struct termio *) &oldtc);
  2053. X  newtc = oldtc;
  2054. X  newtc.c_cc[VQUIT] = 24;
  2055. X  ioctl(0, TCSETA, (struct termio *) &newtc);
  2056. X
  2057. X#endif
  2058. X
  2059. X}
  2060. X
  2061. X
  2062. X
  2063. X
  2064. X/* #NX - Restore SIGABRT. */
  2065. X
  2066. Xvoid noctrlx()
  2067. X{
  2068. X
  2069. X#ifdef _SYS7
  2070. X
  2071. X  ioctl(0, TIOCSETC, (struct sgttyb *) &oldtc);
  2072. X
  2073. X#else
  2074. X
  2075. X  ioctl(0, TCSETA, (struct termio *) &oldtc);
  2076. X
  2077. X#endif
  2078. X
  2079. X}
  2080. END_OF_FILE
  2081.   if test 1116 -ne `wc -c <'mbox/src/ctrlx.c'`; then
  2082.     echo shar: \"'mbox/src/ctrlx.c'\" unpacked with wrong size!
  2083.   fi
  2084.   # end of 'mbox/src/ctrlx.c'
  2085. fi
  2086. if test -f 'mbox/src/dis.c' -a "${1}" != "-c" ; then 
  2087.   echo shar: Will not clobber existing file \"'mbox/src/dis.c'\"
  2088. else
  2089.   echo shar: Extracting \"'mbox/src/dis.c'\" \(1823 characters\)
  2090.   sed "s/^X//" >'mbox/src/dis.c' <<'END_OF_FILE'
  2091. X/* ix/MBox (dis.c) by Volker Schuermann, 04.12.1993
  2092. X
  2093. X   This C source code contains the following functions:
  2094. X
  2095. X   #DS dis()              sort of a threaded news reader
  2096. X
  2097. X   Contact <volkers@unnet.wupper.de> for help! */
  2098. X
  2099. X
  2100. X
  2101. X
  2102. X
  2103. X
  2104. X
  2105. X
  2106. X#include <stdio.h>
  2107. X
  2108. X#include "mbox.h"
  2109. X
  2110. X
  2111. X/* #DS - Handle news articles as threads. 
  2112. X
  2113. X   If [argument] is empty, only new threads are display. A '*' will
  2114. X   give a list of all thread in the current group.
  2115. X
  2116. X   All other figures will be interpreted as article numbers and will
  2117. X   start the reading process. */
  2118. X
  2119. Xvoid dis( argument )
  2120. XUNSIGNED char argument[];
  2121. X{
  2122. X  FILE *fp;
  2123. X  UNSIGNED char s[STRING];
  2124. X  UNSIGNED char t[STRING];
  2125. X
  2126. X  
  2127. X  if(argument[0] == '\0'){
  2128. X    headblock( DIS00_MSG, DIS00aMSG );
  2129. X    strcpy(t, (UNSIGNED char *) NG);
  2130. X
  2131. X    if(strlen(t) > 14){
  2132. X#ifndef _LONGNAMES
  2133. X        strcpy(t, (UNSIGNED char *) shortname(t));
  2134. X#endif
  2135. X    }
  2136. X
  2137. X    sprintf(s, "%s/.thread/%s", LIB, t);
  2138. X    if (show(s, 9999, USER.more + 100) == -1) {
  2139. X            ansi2( "md", 0, 0);
  2140. X            printf("%s\n", DIS03_MSG);
  2141. X            ansi2( "me", 0, 0 );
  2142. X            printf("%s\n", DIS04_MSG);
  2143. X    }
  2144. X    return;
  2145. X  }
  2146. X
  2147. X
  2148. X  if(argument[0] == '*'){
  2149. X    headblock( DIS01_MSG, DIS02_MSG );
  2150. X
  2151. X    sprintf(s, "%s/usr/%c/%d/.dis", HOME, USER.name[0], USER.id);
  2152. X    if (show(s, 9999, USER.more + 100) == -1) {
  2153. X            ansi2( "md", 0, 0);
  2154. X            printf("%s.\n", DIS03_MSG);
  2155. X            ansi2( "me", 0, 0 );
  2156. X            printf("%s\n", DIS04_MSG);
  2157. X    }
  2158. X    return;
  2159. X  }
  2160. X
  2161. X
  2162. X  DISKUSSION = 1;
  2163. X
  2164. X  if (strcomp(BRETT, "PM") != 0) {
  2165. X    sprintf(s, "%s/%s", BRETT, argument); 
  2166. X  }
  2167. X  else {
  2168. X    sprintf(s, "%s/usr/%c/%d/%s", HOME, USER.name[0], USER.id, argument);
  2169. X  }
  2170. X
  2171. X  fp = fopen(s, "r");
  2172. X  if(fp != NULL){
  2173. X    while(fgets(s, STRING, fp) != 0){
  2174. X        if(strcomp("Subject:", s) == 0){
  2175. X            strcpy(DIS_subject, (UNSIGNED char *) strcopy(s, 9, STRING));
  2176. X        }
  2177. X    }
  2178. X    fclose(fp);
  2179. X
  2180. X    lesen( argument );
  2181. X  }
  2182. X
  2183. X  DISKUSSION = 0;
  2184. X}
  2185. END_OF_FILE
  2186.   if test 1823 -ne `wc -c <'mbox/src/dis.c'`; then
  2187.     echo shar: \"'mbox/src/dis.c'\" unpacked with wrong size!
  2188.   fi
  2189.   # end of 'mbox/src/dis.c'
  2190. fi
  2191. if test -f 'mbox/src/dstock.c' -a "${1}" != "-c" ; then 
  2192.   echo shar: Will not clobber existing file \"'mbox/src/dstock.c'\"
  2193. else
  2194.   echo shar: Extracting \"'mbox/src/dstock.c'\" \(2361 characters\)
  2195.   sed "s/^X//" >'mbox/src/dstock.c' <<'END_OF_FILE'
  2196. X/* ix/MBox (dstock.c) by Volker Schuermann, 04.12.1993
  2197. X
  2198. X   This C source code contains the following functions:
  2199. X
  2200. X   #SE stock_exchange()      building up stock exchange files
  2201. X
  2202. X   Contact <volkers@unnet.wupper.de> for help! */
  2203. X
  2204. X
  2205. X
  2206. X
  2207. X
  2208. X
  2209. X
  2210. X
  2211. X#ifndef _ESTDIO
  2212. X#include <stdio.h>
  2213. X#else
  2214. X#include <estdio.h>
  2215. X#endif
  2216. X#include <sys/types.h>
  2217. X#include <sys/stat.h>
  2218. X#include <time.h>
  2219. X#include <dirent.h>
  2220. X
  2221. X#include <errno.h>
  2222. X
  2223. X#include "mbox.h"
  2224. X
  2225. X
  2226. X/* #SE - This is used by MB-DAEMON to build up some Stock files. 
  2227. X
  2228. X   The parameter [path] contains the path to a news article which
  2229. X   has to be analysed. The "Subject:" line of this article is
  2230. X   delivered in [subj]. */
  2231. X
  2232. Xstock_exchange( path, subj )
  2233. XUNSIGNED char path[];
  2234. XUNSIGNED char subj[];
  2235. X{
  2236. X  FILE *fp;
  2237. X  FILE *ff;  
  2238. X  FILE *wp;
  2239. X
  2240. X  UNSIGNED char s[STRING];
  2241. X  UNSIGNED char t[STRING];
  2242. X  UNSIGNED char idx[STRING];
  2243. X
  2244. X  int i, wpkn = 1;
  2245. X
  2246. X  fp = fopen( path, "r" );
  2247. X  if(fp == NULL){
  2248. X    /*
  2249. X    nerror("dstock.c", 53, "stock_exchange", "Can't read", path );        
  2250. X    */
  2251. X    return;
  2252. X  }
  2253. X
  2254. X  while((fgets(s, STRING, fp) != 0) && (strcomp("Lines: ", s) != 0));
  2255. X  
  2256. X  if(strcomp(STOCK_DJ,         subj) == 0){
  2257. X
  2258. X    if(strcomp(WPKN_DJ,     subj) == 0)
  2259. X        sprintf(s, "%s/dj.wpkn", STOCK_PATH);
  2260. X    else{
  2261. X        fgets(s, STRING, fp);
  2262. X        fgets(s, STRING, fp);
  2263. X        strcpy(t, (UNSIGNED char *) strcopy(s, 7, 14));
  2264. X        if(t[0] > '9') return;
  2265. X        sprintf(s, (UNSIGNED char *) "%s/%s.dj", STOCK_PATH, t);
  2266. X        wpkn = 0;
  2267. X        sprintf(idx, "%s/dj.wpkn", STOCK_PATH);
  2268. X    }
  2269. X  } 
  2270. X
  2271. X
  2272. X  if(strcomp(STOCK_DAX,         subj) == 0){
  2273. X
  2274. X    if(strcomp(WPKN_DAX,     subj) == 0)
  2275. X        sprintf(s, "%s/dax.wpkn", STOCK_PATH);
  2276. X    else{
  2277. X        fgets(s, STRING, fp);
  2278. X        fgets(s, STRING, fp);
  2279. X        strcpy(t, (UNSIGNED char *) strcopy(s, 7, 14));
  2280. X        if(t[0] > '9') return;
  2281. X        sprintf(s, (UNSIGNED char *) "%s/%s.dax", STOCK_PATH, t);
  2282. X        wpkn = 0;
  2283. X        sprintf(idx, "%s/dax.wpkn", STOCK_PATH);
  2284. X    }
  2285. X  }
  2286. X
  2287. X  i = 0;
  2288. X  
  2289. X  while(s[i] != '\0'){
  2290. X    if(s[i] == ' ') s[i] = '-';
  2291. X    i++;
  2292. X  }  
  2293. X
  2294. X  ff = fopen( s, "w" );
  2295. X  if(ff == NULL){
  2296. X    mkdir( STOCK_PATH, 0777 );
  2297. X    if(fp != NULL) fclose(fp);
  2298. X    return;
  2299. X  }
  2300. X
  2301. X  if(wpkn == 1){
  2302. X
  2303. X    while(fgets(s, STRING, fp) != 0){
  2304. X        fputs(s, ff);
  2305. X    }
  2306. X
  2307. X  }
  2308. X  else{
  2309. X
  2310. X    wp = fopen( idx, "r" );
  2311. X    if(wp == NULL){
  2312. X        if(ff != NULL) fclose(ff);
  2313. X        if(fp != NULL) fclose(fp);
  2314. X        return;
  2315. X    }
  2316. X
  2317. X    fgets(t, STRING, wp);
  2318. X
  2319. X    while(fgets(s, STRING, fp) != 0){
  2320. X        fgets(t, STRING, wp);
  2321. X        fprintf(ff, "%s%s", t, s);
  2322. X    }
  2323. X
  2324. X    fclose(wp);
  2325. X  }
  2326. X
  2327. X  fclose(ff);
  2328. X  fclose(fp);
  2329. X}
  2330. END_OF_FILE
  2331.   if test 2361 -ne `wc -c <'mbox/src/dstock.c'`; then
  2332.     echo shar: \"'mbox/src/dstock.c'\" unpacked with wrong size!
  2333.   fi
  2334.   # end of 'mbox/src/dstock.c'
  2335. fi
  2336. if test -f 'mbox/src/faces.c' -a "${1}" != "-c" ; then 
  2337.   echo shar: Will not clobber existing file \"'mbox/src/faces.c'\"
  2338. else
  2339.   echo shar: Extracting \"'mbox/src/faces.c'\" \(3465 characters\)
  2340.   sed "s/^X//" >'mbox/src/faces.c' <<'END_OF_FILE'
  2341. X/* ix/MBox (faces.c) by Volker Schuermann, 04.12.1993
  2342. X
  2343. X   This C source code contains the following functions:
  2344. X
  2345. X   #FA faces()          try to read the "X-Face:" header lines
  2346. X
  2347. X   Contact <volkers@unnet.wupper.de> for help! */
  2348. X
  2349. X
  2350. X
  2351. X
  2352. X
  2353. X
  2354. X
  2355. X
  2356. X#include <stdio.h>
  2357. X
  2358. X#include "mbox.h"
  2359. X
  2360. X#define a1    219
  2361. X#define a2    223
  2362. X#define a3    220
  2363. X#define a4    32
  2364. X
  2365. X#define b1    '8'
  2366. X#define b2    '9'
  2367. X#define b3    '6'
  2368. X#define b4    32
  2369. X
  2370. X
  2371. X
  2372. X
  2373. X/* #FA - There were plans to implement the "X-Face:" header lines, but the 
  2374. X   resulting overhead is far too big to realize it! */
  2375. X
  2376. Xvoid faces( fname )
  2377. XUNSIGNED char fname[];
  2378. X{
  2379. X  int x, y;
  2380. X  int x1, y1;
  2381. X  int Z1, Z2, Z3, Z4;
  2382. X  FILE *fp;
  2383. X  int c, i;
  2384. X  UNSIGNED char s[STRING];
  2385. X  int tog = 0;
  2386. X  UNSIGNED char t[STRING];
  2387. X
  2388. X
  2389. X
  2390. X  ansi2("mr", 0, 0);
  2391. X  printf("[Bild des Autors ansehen?] G, A, %c, ? > ", GBL07_MSG);
  2392. X  ansi2("me", 0, 0);
  2393. X  printf("G%c", BS);
  2394. X
  2395. X  do {
  2396. X    c = getint();
  2397. X    if (c >= 97) c -= 32;
  2398. X    if (c == ENTER) c = 'G';
  2399. X    if (c == '?') {
  2400. X        clearline();
  2401. X        ansi2("mr", 0, 0);
  2402. X        printf("%c%s > ", CR, "Bild des Autors anzeigen als Grafik, Ascii-Bild oder lieber Nicht ?");
  2403. X        ansi2("me", 0, 0);
  2404. X    }
  2405. X    if ((c != 'G') && (c != 'A') && (c != GBL07_MSG)) c = 0;
  2406. X  } while (c == 0);
  2407. X
  2408. X  printf("%c\n\n", c);
  2409. X
  2410. X  if (c == GBL07_MSG) return;
  2411. X
  2412. X  if(c == 'G'){
  2413. X    Z1 = a1;
  2414. X    Z2 = a2;
  2415. X    Z3 = a3;
  2416. X    Z4 = a4;
  2417. X  }
  2418. X  if(c == 'A'){
  2419. X    Z1 = b1;
  2420. X    Z2 = b2;
  2421. X    Z3 = b3;
  2422. X    Z4 = b4;
  2423. X  }
  2424. X
  2425. X  sprintf(s, "%s/etc/face.put", HOME);
  2426. X
  2427. X  fp = fopen( s, "r" );
  2428. X  
  2429. X  x1 = fgetc(fp); c = fgetc(fp);
  2430. X  y1 = fgetc(fp); c = fgetc(fp);
  2431. X
  2432. X  for(y = 0; y < y1; y++){
  2433. X    i = 0;
  2434. X    for(x = 0; x < x1; x += 8){
  2435. X        c = fgetc(fp);
  2436. X        if(tog == 0) s[i] = c;
  2437. X        else t[i] = c;
  2438. X        i++;
  2439. X    }
  2440. X    tog++;
  2441. X    if(tog == 2){
  2442. X        tog = 0;
  2443. X        i = (int) x/8;
  2444. X        for(x = 0; x < i; x ++){
  2445. X            if( (s[x] & 128) &&  (t[x] & 128)) printf("%c", Z1);
  2446. X            if( (s[x] & 128) && !(t[x] & 128)) printf("%c", Z2);
  2447. X            if(!(s[x] & 128) &&  (t[x] & 128)) printf("%c", Z3);
  2448. X            if(!(s[x] & 128) && !(t[x] & 128)) printf("%c", Z4);
  2449. X
  2450. X            if( (s[x] & 64) &&  (t[x] & 64)) printf("%c", Z1);
  2451. X            if( (s[x] & 64) && !(t[x] & 64)) printf("%c", Z2);
  2452. X            if(!(s[x] & 64) &&  (t[x] & 64)) printf("%c", Z3);
  2453. X            if(!(s[x] & 64) && !(t[x] & 64)) printf("%c", Z4);
  2454. X
  2455. X            if( (s[x] & 32) &&  (t[x] & 32)) printf("%c", Z1);
  2456. X            if( (s[x] & 32) && !(t[x] & 32)) printf("%c", Z2);
  2457. X            if(!(s[x] & 32) &&  (t[x] & 32)) printf("%c", Z3);
  2458. X            if(!(s[x] & 32) && !(t[x] & 32)) printf("%c", Z4);
  2459. X
  2460. X            if( (s[x] & 16) &&  (t[x] & 16)) printf("%c", Z1);
  2461. X            if( (s[x] & 16) && !(t[x] & 16)) printf("%c", Z2);
  2462. X            if(!(s[x] & 16) &&  (t[x] & 16)) printf("%c", Z3);
  2463. X            if(!(s[x] & 16) && !(t[x] & 16)) printf("%c", Z4);
  2464. X
  2465. X            if( (s[x] & 8) &&  (t[x] & 8)) printf("%c", Z1);
  2466. X            if( (s[x] & 8) && !(t[x] & 8)) printf("%c", Z2);
  2467. X            if(!(s[x] & 8) &&  (t[x] & 8)) printf("%c", Z3);
  2468. X            if(!(s[x] & 8) && !(t[x] & 8)) printf("%c", Z4);
  2469. X
  2470. X            if( (s[x] & 4) &&  (t[x] & 4)) printf("%c", Z1);
  2471. X            if( (s[x] & 4) && !(t[x] & 4)) printf("%c", Z2);
  2472. X            if(!(s[x] & 4) &&  (t[x] & 4)) printf("%c", Z3);
  2473. X            if(!(s[x] & 4) && !(t[x] & 4)) printf("%c", Z4);
  2474. X
  2475. X            if( (s[x] & 2) &&  (t[x] & 2)) printf("%c", Z1);
  2476. X            if( (s[x] & 2) && !(t[x] & 2)) printf("%c", Z2);
  2477. X            if(!(s[x] & 2) &&  (t[x] & 2)) printf("%c", Z3);
  2478. X            if(!(s[x] & 2) && !(t[x] & 2)) printf("%c", Z4);
  2479. X
  2480. X            if( (s[x] & 1) &&  (t[x] & 1)) printf("%c", Z1);
  2481. X            if( (s[x] & 1) && !(t[x] & 1)) printf("%c", Z2);
  2482. X            if(!(s[x] & 1) &&  (t[x] & 1)) printf("%c", Z3);
  2483. X            if(!(s[x] & 1) && !(t[x] & 1)) printf("%c", Z4);
  2484. X        }
  2485. X        printf("\n");
  2486. X    }
  2487. X  }
  2488. X  fclose(fp);
  2489. X
  2490. X  c = getint();
  2491. X}
  2492. X
  2493. X
  2494. X
  2495. END_OF_FILE
  2496.   if test 3465 -ne `wc -c <'mbox/src/faces.c'`; then
  2497.     echo shar: \"'mbox/src/faces.c'\" unpacked with wrong size!
  2498.   fi
  2499.   # end of 'mbox/src/faces.c'
  2500. fi
  2501. if test -f 'mbox/src/games.c' -a "${1}" != "-c" ; then 
  2502.   echo shar: Will not clobber existing file \"'mbox/src/games.c'\"
  2503. else
  2504.   echo shar: Extracting \"'mbox/src/games.c'\" \(1083 characters\)
  2505.   sed "s/^X//" >'mbox/src/games.c' <<'END_OF_FILE'
  2506. X/* ix/MBox (games.c) by Volker Schuermann, 04.12.1993
  2507. X
  2508. X   This C source code contains the following functions:
  2509. X
  2510. X   #GA games()            list and start games    
  2511. X
  2512. X   Contact <volkers@unnet.wupper.de> for help! */
  2513. X
  2514. X
  2515. X
  2516. X
  2517. X
  2518. X
  2519. X
  2520. X
  2521. X
  2522. X
  2523. X#include <stdio.h>
  2524. X#include "mbox.h"
  2525. X
  2526. X/* #GA - List and start a few boring games. */
  2527. X
  2528. Xgames()
  2529. X{
  2530. X  FILE *fp;
  2531. X  int i, c;
  2532. X
  2533. X  UNSIGNED char s[STRING];
  2534. X  UNSIGNED char GAME[MAX_GAMES][STRING];
  2535. X
  2536. X
  2537. X  headline( GA01_MSG );
  2538. X  printf("\n");
  2539. X
  2540. X  fp = fopen(GAMES, "r");
  2541. X  if (fp == NULL) {
  2542. X    nerror("games.c", 19, "games", "Can't read", GAMES);
  2543. X  }
  2544. X  i = 0;
  2545. X  while((fgets(s, STRING, fp) != NULL) && (s[0] != '='));
  2546. X  while((i < MAX_GAMES) && (fscanf(fp, "%s %s", s, GAME[i]) > 0)){
  2547. X    i++;
  2548. X    printf("  %d - %s\n\n", i, s); 
  2549. X  }
  2550. X  fclose(fp);
  2551. X
  2552. X  ansi2("md", 0, 0);
  2553. X  printf("\n%s > ", GA02_MSG);
  2554. X  ansi2("me", 0, 0);
  2555. X
  2556. X  c = getint();
  2557. X  if(c > 32) printf("%c", c);
  2558. X  c -= 49;
  2559. X
  2560. X  if((c >= 0) && (c < i)){
  2561. X    printf("\n\n");
  2562. X    sprintf(s, "%s %s %d %d", RSH, GAME[c], OLDUID, OLDGID);
  2563. X    system(s);    
  2564. X  }
  2565. X  else{
  2566. X    ansi2("md", 0, 0);
  2567. X    printf(" %s\n", GA03_MSG);
  2568. X    ansi2("me", 0, 0);
  2569. X  }
  2570. X}
  2571. X
  2572. END_OF_FILE
  2573.   if test 1083 -ne `wc -c <'mbox/src/games.c'`; then
  2574.     echo shar: \"'mbox/src/games.c'\" unpacked with wrong size!
  2575.   fi
  2576.   # end of 'mbox/src/games.c'
  2577. fi
  2578. if test -f 'mbox/src/getch.c' -a "${1}" != "-c" ; then 
  2579.   echo shar: Will not clobber existing file \"'mbox/src/getch.c'\"
  2580. else
  2581.   echo shar: Extracting \"'mbox/src/getch.c'\" \(2356 characters\)
  2582.   sed "s/^X//" >'mbox/src/getch.c' <<'END_OF_FILE'
  2583. X/* ix/MBox (getch.c) by Volker Schuermann, 04.12.1993
  2584. X
  2585. X   This C source code contains the following functions:
  2586. X
  2587. X   #GE getch()            read a char, return anyway
  2588. X
  2589. X   Contact <volkers@unnet.wupper.de> for help! 
  2590. X
  2591. X
  2592. X   !!! See below to find out who wrote this one!!! */
  2593. X
  2594. X
  2595. X
  2596. X
  2597. X/*
  2598. X *    %Z% %M%    %I% %D% %Q%
  2599. X *
  2600. X *    Copyright (C) 1990 by Christian Schlichtherle
  2601. X *                  (chriss@attron.ruhr.sub.org)
  2602. X *
  2603. X *    %M% - C module for getch(S).
  2604. X *
  2605. X *    "getch" is a DOS and curses(S) like function which reads
  2606. X *    a UNSIGNED character and returns immediately without waiting for
  2607. X *    newline.
  2608. X *
  2609. X *     getch() - Gets a UNSIGNED character.
  2610. X *     This function gets one UNSIGNED character and immediately returns
  2611. X *     without waiting for newline. The UNSIGNED character is not echoed.
  2612. X *     This function can be used best when you want to input only one
  2613. X *     UNSIGNED character within canonical input or if you need this function
  2614. X *     only very rarely.
  2615. X *     EOF is returned on errors or if an ignored signal occured.
  2616. X *    
  2617. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  2618. X */
  2619. X
  2620. X#include "defs.h"
  2621. X#include <sys/types.h>
  2622. X#include <stdio.h>    
  2623. X#include <errno.h>
  2624. X
  2625. X#ifndef _SYS7
  2626. X#include <sys/ioctl.h>
  2627. X
  2628. X#ifdef _LINUX
  2629. X#include <termio.h>
  2630. X#else
  2631. X#include <sys/termio.h>
  2632. X#endif
  2633. X
  2634. X#else
  2635. X#include <sgtty.h>
  2636. X#endif 
  2637. X
  2638. X#ifndef _SYS7
  2639. Xstatic struct termio    told, tnew;
  2640. X
  2641. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  2642. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  2643. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  2644. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  2645. X             ioctl(0, TCSETA, &tnew))
  2646. X
  2647. X#else
  2648. Xstatic struct sgttyb    told, tnew;
  2649. X
  2650. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  2651. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  2652. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  2653. X             ioctl(0, TIOCSETP, &tnew))
  2654. X
  2655. X#endif
  2656. X
  2657. Xstatic int    set = 0;
  2658. X
  2659. Xint    getch()
  2660. X{
  2661. X    int    rstat;
  2662. X    int    c;
  2663. X
  2664. X#ifdef _PROFILE
  2665. X  profile( "getch()" );
  2666. X#endif
  2667. X
  2668. X    if (!set) {
  2669. X            /* Get old terminal mode. */
  2670. X        if (get_oldmode() == -1)
  2671. X            return (EOF);
  2672. X
  2673. X        tnew = told;
  2674. X            /* Don't execute this part anymore. */
  2675. X        set = 1;
  2676. X    }
  2677. X
  2678. X        /* Set new terminal mode. */
  2679. X    if (set_newmode() == -1)
  2680. X        return (EOF);
  2681. X
  2682. X        /* 
  2683. X         * Read one character. The orginal function used 
  2684. X         * read(0, &c, 1) but getchar is a macro 
  2685. X         * and faster. Xenox Fri Jun 19 20:44:46 DST 1992
  2686. X         */
  2687. X    c = getchar();
  2688. X
  2689. X        set_oldmode();
  2690. X
  2691. X    return ((int)c);
  2692. X}
  2693. X
  2694. X
  2695. X
  2696. END_OF_FILE
  2697.   if test 2356 -ne `wc -c <'mbox/src/getch.c'`; then
  2698.     echo shar: \"'mbox/src/getch.c'\" unpacked with wrong size!
  2699.   fi
  2700.   # end of 'mbox/src/getch.c'
  2701. fi
  2702. if test -f 'mbox/src/help.c' -a "${1}" != "-c" ; then 
  2703.   echo shar: Will not clobber existing file \"'mbox/src/help.c'\"
  2704. else
  2705.   echo shar: Extracting \"'mbox/src/help.c'\" \(2165 characters\)
  2706.   sed "s/^X//" >'mbox/src/help.c' <<'END_OF_FILE'
  2707. X/* ix/MBox (help.c) by Volker Schuermann, 04.12.1993
  2708. X
  2709. X   This C source code contains the following functions:
  2710. X
  2711. X   #HE help()           display help texts
  2712. X
  2713. X   Contact <volkers@unnet.wupper.de> for help! */
  2714. X
  2715. X
  2716. X
  2717. X
  2718. X
  2719. X
  2720. X
  2721. X
  2722. X#include <stdio.h>
  2723. X
  2724. X#include "mbox.h"
  2725. X
  2726. X
  2727. X
  2728. X/* #HE - Give help.
  2729. X
  2730. X   [cmd]   ->  '*'        = Display the entire helpfile
  2731. X               '='        = Show the short version of the helpfile
  2732. X
  2733. X               '#Command' = find the entry for 'Command' and show
  2734. X                            the belonging helptext
  2735. X
  2736. X   This functions returns 0 on any errors or the number of found entries
  2737. X   otherwise. */
  2738. X
  2739. Xint help(cmd)
  2740. XUNSIGNED char cmd[];
  2741. X{
  2742. X  FILE *fp;
  2743. X  UNSIGNED char s[LONGSTRING];
  2744. X  int ok = 0, found = 0, toggle = 0, lines = 0, new = 0;
  2745. X
  2746. X  show(KURZHILFE, 99, 99); /* RESET */
  2747. X  
  2748. X  if(cmd[0] == '='){
  2749. X    if(USER.schluessel[3] != 128){
  2750. X        headline( HLP01_MSG );
  2751. X        show(KURZHILFE, 9999, USER.more);
  2752. X    }
  2753. X    else{
  2754. X        show_raw( ANSI_HELP, 10 );
  2755. X        show(KURZHILFE, 9999, USER.more + 1000);
  2756. X    }
  2757. X
  2758. X    return 9999;
  2759. X  }
  2760. X
  2761. X  maybe_locked(HILFE, "r");
  2762. X  fp = fopen(HILFE, "r");
  2763. X  if (fp == NULL) {
  2764. X    nerror("help.c", 14, "help", "Can't read", HILFE);
  2765. X  }
  2766. X  if (cmd[0] != '#') {
  2767. X    ok = 2;
  2768. X    found++;
  2769. X  }
  2770. X  headline( HLP01_MSG );
  2771. X  lines = 0;
  2772. X
  2773. X  while(fgets(s, STRING, fp) != NULL){
  2774. X
  2775. X    if(UMLAUT_MODUS != 4) 
  2776. X        strcpy(s, (UNSIGNED char *) iso_line(s));
  2777. X    
  2778. X    strcpy(s, (UNSIGNED char *) richtext(s));
  2779. X
  2780. X    if (USER.more > 0) {
  2781. X        if (lines >= MAX_SCR_LINES) {
  2782. X            lines = 0;
  2783. X            if (more() != 0) return 1;
  2784. X        }
  2785. X    }
  2786. X    if (ok == 2) {
  2787. X        if (s[0] != '#') {
  2788. X            printf("%s", s);
  2789. X            lines++;
  2790. X            if (toggle > 0) {
  2791. X                ansi2("me", 0, 0);
  2792. X                toggle = 0;
  2793. X            }
  2794. X        }
  2795. X        else {
  2796. X            printf("\n");
  2797. X            lines++;
  2798. X            ansi2("md", 0, 0);
  2799. X            toggle++;
  2800. X        }
  2801. X    }
  2802. X    else {
  2803. X        if ((ok == 1) && (s[0] == '#')) {
  2804. X            if(new != 0){
  2805. X                ok = 0;
  2806. X                /*
  2807. X                printf("\n");
  2808. X                */
  2809. X                lines++;
  2810. X                new = 0;
  2811. X            }
  2812. X        }
  2813. X        if ((ok == 1) && (s[0] != '#')) {
  2814. X            printf("%s", s);
  2815. X            new++;
  2816. X            lines++;
  2817. X            if (toggle > 0) {
  2818. X                ansi2("me", 0, 0);
  2819. X                toggle == 0;
  2820. X            }
  2821. X        }
  2822. X        if ((ok == 0) && (s[0] == '#')) {
  2823. X            if (strcomp(cmd, s) == 0) {
  2824. X                ok = 1;
  2825. X                found++;
  2826. X                ansi2("md", 0, 0);
  2827. X                toggle++;
  2828. X            }
  2829. X        }
  2830. X    }
  2831. X  }
  2832. X  fclose(fp);
  2833. X
  2834. X  return found;
  2835. X}
  2836. END_OF_FILE
  2837.   if test 2165 -ne `wc -c <'mbox/src/help.c'`; then
  2838.     echo shar: \"'mbox/src/help.c'\" unpacked with wrong size!
  2839.   fi
  2840.   # end of 'mbox/src/help.c'
  2841. fi
  2842. if test -f 'mbox/src/nerror.c' -a "${1}" != "-c" ; then 
  2843.   echo shar: Will not clobber existing file \"'mbox/src/nerror.c'\"
  2844. else
  2845.   echo shar: Extracting \"'mbox/src/nerror.c'\" \(1011 characters\)
  2846.   sed "s/^X//" >'mbox/src/nerror.c' <<'END_OF_FILE'
  2847. X/* ix/MBox (nerror.c) by Volker Schuermann, 04.12.1993
  2848. X
  2849. X   This C source code contains the following functions:
  2850. X
  2851. X   #NE nerror()           catching bugs
  2852. X
  2853. X   Contact <volkers@unnet.wupper.de> for help! */
  2854. X
  2855. X
  2856. X
  2857. X
  2858. X
  2859. X
  2860. X
  2861. X
  2862. X#include <stdio.h>
  2863. X#include <setjmp.h>
  2864. X
  2865. X#include "mbox.h"
  2866. X
  2867. X
  2868. Xextern jmp_buf jmpenv;
  2869. X
  2870. X
  2871. X
  2872. X/* #NR - Catching bugs and doing the reporting.
  2873. X
  2874. X   [file] tells in which file the error occured,
  2875. X   [line] specifies the code line,
  2876. X   [function] names the C function,
  2877. X   [descr] contains a description and
  2878. X   [er] gives further information. */
  2879. X
  2880. X
  2881. Xvoid nerror(file, line, function, descr, er)
  2882. XUNSIGNED char file[];
  2883. Xint line;
  2884. XUNSIGNED char function[], descr[], er[];
  2885. X{
  2886. X  UNSIGNED char s[STRING];
  2887. X
  2888. X  ansi2("md", 0, 0);
  2889. X  printf("%c%s ", CR, NER01_MSG);
  2890. X  ansi2("me", 0, 0);
  2891. X
  2892. X  printf("%s (%s) - %s \"%s\"\n", function, file, descr, er);
  2893. X
  2894. X  sprintf(s, "[%s] %s, %d\n***** %s, %s, %s ... %s !!!",
  2895. X    NER02_MSG, file, line, function, descr, er, NER03_MSG);
  2896. X
  2897. X  control(s, 99);
  2898. X  control(s, 3);
  2899. X
  2900. X  longjmp(jmpenv, 1);
  2901. X}
  2902. X
  2903. X
  2904. X
  2905. END_OF_FILE
  2906.   if test 1011 -ne `wc -c <'mbox/src/nerror.c'`; then
  2907.     echo shar: \"'mbox/src/nerror.c'\" unpacked with wrong size!
  2908.   fi
  2909.   # end of 'mbox/src/nerror.c'
  2910. fi
  2911. if test -f 'mbox/src/patchlevel.h' -a "${1}" != "-c" ; then 
  2912.   echo shar: Will not clobber existing file \"'mbox/src/patchlevel.h'\"
  2913. else
  2914.   echo shar: Extracting \"'mbox/src/patchlevel.h'\" \(2175 characters\)
  2915.   sed "s/^X//" >'mbox/src/patchlevel.h' <<'END_OF_FILE'
  2916. X/* ix/MBox patchlevel file (patchlevel.h) */
  2917. X
  2918. X#define PATCHLEVEL    "PL94(fz)4d"
  2919. X
  2920. X/* 
  2921. X
  2922. X   New since PL10r (20.06.1993):
  2923. X
  2924. X   intro.c
  2925. X   mbox.h
  2926. X
  2927. X
  2928. X   New since PL10r2 (27.06.1993):
  2929. X
  2930. X   mbox.msg (deutsch, english, french)
  2931. X   pd.c
  2932. X   getline.c
  2933. X
  2934. X  
  2935. X   New since PL10r4 (17.07.1993):
  2936. X
  2937. X   tools.c (Error report on STRINGLAENGENFEHLER)
  2938. X
  2939. X
  2940. X   New since PL10r5 (19.07.1993):
  2941. X
  2942. X   mbox.h, loop.c, uudecode.c (!)
  2943. X
  2944. X   
  2945. X   New since PL10r7 (01.08.1993):
  2946. X
  2947. X   *.c, subscribe.c (!)
  2948. X
  2949. X
  2950. X   New since PL11r1 (05.08.1993):
  2951. X
  2952. X   *.c, SGROUPS
  2953. X
  2954. X   
  2955. X   New since PL11r5 (22.08.1993):
  2956. X
  2957. X   misc2.c
  2958. X
  2959. X   
  2960. X   New since PL11r6 (24.10.1993):
  2961. X
  2962. X   show.c, loop.c, subscribe.c, lesen2.c, ... ROT13 (!)
  2963. X
  2964. X
  2965. X   New since PL11r7 (13.11.1993):
  2966. X
  2967. X   show.c, wendy/rtf.c: bigcopy()
  2968. X
  2969. X   
  2970. X   New since PL11r8 (14.11.1993):
  2971. X
  2972. X   getline.c, intro.c
  2973. X
  2974. X
  2975. X   New since PL11r9 (15.11.1993):
  2976. X
  2977. X   intro.c, pd.c
  2978. X
  2979. X  
  2980. X   New since PL12r2 (24.11.1993):
  2981. X
  2982. X   intro.c, mail.c, smalltalk.c, smalltext.c ... LISA (!)
  2983. X
  2984. X  
  2985. X   New since PL12r3 (26.11.1993):
  2986. X
  2987. X   dstock.c, weiterl.c ... BOERSE (!)
  2988. X
  2989. X
  2990. X   New since PL12r4 (01.12.1993):
  2991. X
  2992. X   xmd.c, misc.c
  2993. X
  2994. X   
  2995. X   New since PL12r5 (04.12.1993):
  2996. X
  2997. X   *.c, *.h ... english versions allover (!)
  2998. X
  2999. X
  3000. X   New since 2.0 PL10r3 (12.12.1993):
  3001. X
  3002. X   subscribe.c, loop.c, uudecode.c ... PREVIEW (!)
  3003. X
  3004. X
  3005. X   New since 2.0 PL10r4f (02.01.1994):
  3006. X
  3007. X   uudecode.c ... ScreenScaver (for INTELs)
  3008. X
  3009. X
  3010. X   New since 2.0 PL10r5 (03.01.1994):
  3011. X
  3012. X   intro.c, admin.c ... additional terminals emulations (!)
  3013. X
  3014. X
  3015. X   New since 2.0 PL10r5c (08.01.1994):
  3016. X
  3017. X   loop.c, show.c, uudecode.c, portinfo.c, help.c ... ANSI logos f. IBM (!)
  3018. X
  3019. X
  3020. X   New since 2.1 PL1r4 (30.01.1994):
  3021. X
  3022. X   cdrom.c ... CDROM support (!)
  3023. X
  3024. X
  3025. X   New since 2.1 PL1r5 (05.02.1994):
  3026. X
  3027. X   uudecode.c ... automagically finding, sorting and uudecoding (!)
  3028. X
  3029. X
  3030. X   New since 2.1 PL1r6 (12.02.1994):
  3031. X
  3032. X   cdrom.c, misc2.c, lesen2.c, lesen.c ... CDROM included in BBS' filesystem (!)
  3033. X
  3034. X
  3035. X   New since 2.1 PL10r5 (22.02.1994)
  3036. X
  3037. X   mb-daemon.c ... works properly w/o flag '-x' (!) 
  3038. X
  3039. X  
  3040. X   New since 2.1 PL94(fz)3 (27.02.1994)
  3041. X
  3042. X   *.c, *.* ... frozen for official LINUX support release in march '94 (!)
  3043. X
  3044. X
  3045. X   New sinc 2.1 PL94(fz)4 (06.03.1994)
  3046. X
  3047. X   First patch after delivering international release (!)
  3048. X
  3049. X*/
  3050. END_OF_FILE
  3051.   if test 2175 -ne `wc -c <'mbox/src/patchlevel.h'`; then
  3052.     echo shar: \"'mbox/src/patchlevel.h'\" unpacked with wrong size!
  3053.   fi
  3054.   # end of 'mbox/src/patchlevel.h'
  3055. fi
  3056. if test -f 'mbox/src/uptodate.c' -a "${1}" != "-c" ; then 
  3057.   echo shar: Will not clobber existing file \"'mbox/src/uptodate.c'\"
  3058. else
  3059.   echo shar: Extracting \"'mbox/src/uptodate.c'\" \(2893 characters\)
  3060.   sed "s/^X//" >'mbox/src/uptodate.c' <<'END_OF_FILE'
  3061. X/* ix/MBox (uptodate.c) by Volker Schuermann, 04.12.1993
  3062. X
  3063. X   This C source code contains the following functions:
  3064. X
  3065. X   #UD uptodate()        call for an update at our ix/MBox headquarters ;-)
  3066. X
  3067. X   Contact <volkers@unnet.wupper.de> for help! */
  3068. X
  3069. X
  3070. X
  3071. X
  3072. X
  3073. X
  3074. X
  3075. X
  3076. X
  3077. X#include <stdio.h>
  3078. X
  3079. X#include "mbox.h"
  3080. X
  3081. X/*
  3082. X    WARNING! This part of the ix/MBox automagically generates an
  3083. X        update-request every month. This request is sent to "unnet!mbox"
  3084. X        in Germany.
  3085. X
  3086. X        If there are any bugfixes, infosheets etc., you'll get them
  3087. X        via mailserver as an reply to the update-request.
  3088. X
  3089. X        The update-request includes some informations about your BBS:
  3090. X        name, uucp-address, sysops name, number of accounts&caller etc. ...
  3091. X
  3092. X        Maybe this data will be used to build reference-lists or will
  3093. X        be mentioned in infosheets.
  3094. X
  3095. X        If you don't want|like that, please change the following
  3096. X        defines!!! 
  3097. X*/
  3098. X
  3099. X#define NO_UPDATE    0    /* 1 means: absolutly no update-requests */
  3100. X#define NO_DETAILS    0    /* 1 means: don't send any sensitive data */
  3101. X
  3102. X
  3103. X/* #UD - Call for updates. */
  3104. X
  3105. Xuptodate()
  3106. X{
  3107. X
  3108. X#if !NO_UPDATE
  3109. X
  3110. X  FILE *fp;
  3111. X  
  3112. X  char s[STRING];
  3113. X  char t[STRING];
  3114. X  char d[STRING];
  3115. X
  3116. X  int accounts;
  3117. X  int calls;
  3118. X  int month;
  3119. X
  3120. X
  3121. X  if(USER.level < WRITE_EX_LEV) return;
  3122. X
  3123. X  strcpy(d, (UNSIGNED char *) mydate( 1 ));
  3124. X  month = atoi(strcopy(d, 3, 4));
  3125. X  sprintf(s, "%s/etc/uptodate.%d", HOME, month);
  3126. X  fp = fopen(s, "r");
  3127. X  if(fp != NULL){
  3128. X    fclose(fp);
  3129. X    return;
  3130. X  }
  3131. X  fp = fopen(s, "w");
  3132. X  if(fp == NULL){
  3133. X    return;
  3134. X  }
  3135. X  fprintf(fp, "Update requested: %s at %s", mydate( 1 ), mytime( 0 )); 
  3136. X  fclose(fp);
  3137. X
  3138. X  if(month == 1) month = 13;
  3139. X  month--;
  3140. X
  3141. X  sprintf(s, "%s/etc/uptodate.%d", HOME, month);
  3142. X  unlink( s );
  3143. X
  3144. X  sprintf(s, "%s/etc/users.seq", HOME);
  3145. X  fp = fopen(s, "r");
  3146. X  if(fp == NULL){
  3147. X    return;
  3148. X  }
  3149. X  fgets(s, STRING, fp);
  3150. X  fclose(fp);
  3151. X  accounts = atoi(s);
  3152. X
  3153. X  sprintf(s, "%s/etc/mbox.seq", HOME);
  3154. X  fp = fopen(s, "r");
  3155. X  if(fp == NULL){
  3156. X    return;
  3157. X  }
  3158. X  fgets(s, STRING, fp);
  3159. X  fclose(fp);
  3160. X  calls = atoi(s);
  3161. X
  3162. X  sprintf(s, "%s/usr/%c/%d/.lastletter", HOME, USER.name[0], USER.id);
  3163. X  fp = fopen(s, "w"); 
  3164. X  if(fp == NULL){
  3165. X    return;
  3166. X  }
  3167. X  fprintf(fp, "This is %s %s, on <%s>!\n\n", VERSION, PATCHLEVEL, UUCPID1);
  3168. X
  3169. X#if !NO_DETAILS
  3170. X  fprintf(fp, "My sysop %s of %s\n", POSTMASTER, ORGANIZATION);
  3171. X  fprintf(fp, "wants update patches, infosheets and so on ...\n\n");
  3172. X  fprintf(fp, "Our systems' called \"%s\",\n", SYSTEM);
  3173. X  fprintf(fp, "and we joggle around with %d users (%d calls) at this moment.\n\n", accounts, calls);
  3174. X#endif /* NO_DETAILS */
  3175. X
  3176. X  fprintf(fp, "If you can't reach us, call <%s> or <%s> ...\n\n", UUCPID2, SMARTHOST);
  3177. X  fclose(fp);
  3178. X
  3179. X  sprintf(s, "%s/usr/%c/%d/.lastsubject", HOME, USER.name[0], USER.id);
  3180. X  fp = fopen(s, "w");
  3181. X  if(fp == NULL){
  3182. X    return;
  3183. X  }
  3184. X  fprintf(fp, "UPDATE-RQ <%s>", UUCPID1);
  3185. X  fclose(fp);
  3186. X
  3187. X  brief( "mbox@unnet.wupper.DE?" );
  3188. X
  3189. X#endif    /* NO_UPDATE */
  3190. X
  3191. X}
  3192. X
  3193. END_OF_FILE
  3194.   if test 2893 -ne `wc -c <'mbox/src/uptodate.c'`; then
  3195.     echo shar: \"'mbox/src/uptodate.c'\" unpacked with wrong size!
  3196.   fi
  3197.   # end of 'mbox/src/uptodate.c'
  3198. fi
  3199. echo shar: End of archive 11 \(of 12\).
  3200. cp /dev/null ark11isdone
  3201. MISSING=""
  3202. for I in 1 2 3 4 5 6 7 8 9 10 11 12 ; do
  3203.     if test ! -f ark${I}isdone ; then
  3204.     MISSING="${MISSING} ${I}"
  3205.     fi
  3206. done
  3207. if test "${MISSING}" = "" ; then
  3208.     echo You have unpacked all 12 archives.
  3209.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  3210. else
  3211.     echo You still must unpack the following archives:
  3212.     echo "        " ${MISSING}
  3213. fi
  3214. exit 0
  3215. exit 0 # Just in case...
  3216.