home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume29 / mbox / part10 < prev    next >
Encoding:
Text File  |  1992-04-05  |  22.8 KB  |  813 lines

  1. Newsgroups: comp.sources.misc
  2. From: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
  3. Subject:  v29i072:  mbox - A Bulletin Board System for UNIX and MINIX, Part10/10
  4. Message-ID: <1992Apr5.183802.223@sparky.imd.sterling.com>
  5. X-Md4-Signature: c6ccfe4ccdb082c5134c7742ff53404a
  6. Date: Sun, 5 Apr 1992 18:38:02 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
  10. Posting-number: Volume 29, Issue 72
  11. Archive-name: mbox/part10
  12. Environment: MINIX, ISC, ESIX, SVR3
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then feed it
  16. # into a shell via "sh file" or similar.  To overwrite existing files,
  17. # type "sh file -c".
  18. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  19. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  20. # Contents:  Announcement Quick.Start etc/active etc/inews.sh etc/intro
  21. #   etc/mbd.log etc/mbox.calls etc/mbox.editors etc/mbox.seq
  22. #   etc/mbox.who etc/pd.log etc/pd.script etc/reflector.log
  23. #   etc/rmail.sh etc/tset src/HISTORY src/baudrate.c src/coreleft.c
  24. #   src/games.c src/getch.c src/mbrsh.c src/patchlevel.h src/test.c
  25. #   src/undef.c
  26. # Wrapped by kent@sparky on Sun Apr  5 11:57:48 1992
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. echo If this archive is complete, you will see the following message:
  29. echo '          "shar: End of archive 10 (of 10)."'
  30. if test -f 'Announcement' -a "${1}" != "-c" ; then 
  31.   echo shar: Will not clobber existing file \"'Announcement'\"
  32. else
  33.   echo shar: Extracting \"'Announcement'\" \(701 characters\)
  34.   sed "s/^X//" >'Announcement' <<'END_OF_FILE'
  35. XThis is the ix/MBox BBS for MINIX-386 (1.5.10 patched by BDE) and other
  36. XUNIX-Systems (SYSV/Sys7) without 64k segment limitation.
  37. X
  38. XRead the ANNOUNCEMENT (Message-ID: <295A0201.18@unnet.w.open.de> 26. Dec. 91)
  39. Xto get further information.
  40. X
  41. XHow to unpack:
  42. X
  43. X1. UUD the following 5 articles (you should get 'mbox.xa*')
  44. X2. Use the script ...
  45. X
  46. X--- cut here  ---
  47. X
  48. Xcat mbox.x* > mbox.tar.Z
  49. Xmkdir /mbox            # Use this directory to minimize problems
  50. Xcp *.Z /mbox            
  51. Xcd /mbox
  52. Xuncompress *.Z
  53. Xtar ovx *.tar
  54. X. Quick.Start
  55. X
  56. X--- cut again ---
  57. X
  58. XDon't blame me for not using SHAR etc. ... primary this source was made and
  59. Xposted for MINIX-Freaks and so I use pure MINIX-Stuff to offer this package!
  60. X
  61. XRegard(s|less), Volker
  62. END_OF_FILE
  63.   if test 701 -ne `wc -c <'Announcement'`; then
  64.     echo shar: \"'Announcement'\" unpacked with wrong size!
  65.   fi
  66.   # end of 'Announcement'
  67. fi
  68. if test -f 'Quick.Start' -a "${1}" != "-c" ; then 
  69.   echo shar: Will not clobber existing file \"'Quick.Start'\"
  70. else
  71.   echo shar: Extracting \"'Quick.Start'\" \(497 characters\)
  72.   sed "s/^X//" >'Quick.Start' <<'END_OF_FILE'
  73. X# If [/mbox] shouldn't be the HOME, you have to change the following files:
  74. X#
  75. X# [HOME/src/Makefile] -> Entry MBOXHOME
  76. X# [HOME/src/mbox.h]   -> Entry HOME
  77. X#
  78. X# DON'T use this script, if you've made the changes!!!
  79. X
  80. X
  81. X# Create the ix/MBox (BBS) HOME-Directory
  82. X
  83. Xmkdir /mbox
  84. X
  85. X# Copy the Package to HOME
  86. X
  87. Xcp mbox.tar.Z /mbox
  88. X
  89. X# Jump there ...
  90. X
  91. Xcd /mbox
  92. X
  93. X# Unpack all
  94. X
  95. Xuncompress *.Z
  96. Xrm *.Z
  97. Xtar ovx *
  98. Xrm *.tar
  99. X
  100. X# Install the BBS (wrong ID etc. - i.e. testing only)
  101. X
  102. Xmake inst
  103. X
  104. X# Try to start ...
  105. X
  106. Xmbox
  107. X
  108. X
  109. X
  110. X
  111. END_OF_FILE
  112.   if test 497 -ne `wc -c <'Quick.Start'`; then
  113.     echo shar: \"'Quick.Start'\" unpacked with wrong size!
  114.   fi
  115.   # end of 'Quick.Start'
  116. fi
  117. if test -f 'etc/active' -a "${1}" != "-c" ; then 
  118.   echo shar: Will not clobber existing file \"'etc/active'\"
  119. else
  120.   echo shar: Extracting \"'etc/active'\" \(0 characters\)
  121.   sed "s/^X//" >'etc/active' <<'END_OF_FILE'
  122. END_OF_FILE
  123.   if test 0 -ne `wc -c <'etc/active'`; then
  124.     echo shar: \"'etc/active'\" unpacked with wrong size!
  125.   fi
  126.   # end of 'etc/active'
  127. fi
  128. if test -f 'etc/inews.sh' -a "${1}" != "-c" ; then 
  129.   echo shar: Will not clobber existing file \"'etc/inews.sh'\"
  130. else
  131.   echo shar: Extracting \"'etc/inews.sh'\" \(701 characters\)
  132.   sed "s/^X//" >'etc/inews.sh' <<'END_OF_FILE'
  133. X#---------------------------------------------------------------------------
  134. X#
  135. X#                       ix/MBox  I N E W S . S H
  136. X#          Mailbox-Programm fuer UNIX(-Derivate)
  137. X#            
  138. X#               Volker Schuermann
  139. X#              Wuppertal, FRG, 08.12.1991
  140. X#
  141. X#---------------------------------------------------------------------------
  142. X# Dieses Script uebergibt einen neuen Artikel an INEWS. Dieser Artikel
  143. X# enthaelt bereits einen (fast) kompletten Header.
  144. X#---------------------------------------------------------------------------
  145. X# Parameter:
  146. X#
  147. X# $1  ->  Newsgroup, an die die Datei gesendet werden soll
  148. X# $2  ->  Datei mit Artikel (s.o.)
  149. X# 
  150. X# Beispiel:
  151. X#
  152. X# /usr/lib/news/inews -h < $2
  153. X
  154. X/usr/lib/news/inews -h < $2
  155. X
  156. END_OF_FILE
  157.   if test 701 -ne `wc -c <'etc/inews.sh'`; then
  158.     echo shar: \"'etc/inews.sh'\" unpacked with wrong size!
  159.   fi
  160.   # end of 'etc/inews.sh'
  161. fi
  162. if test -f 'etc/intro' -a "${1}" != "-c" ; then 
  163.   echo shar: Will not clobber existing file \"'etc/intro'\"
  164. else
  165.   echo shar: Extracting \"'etc/intro'\" \(24 characters\)
  166.   sed "s/^X//" >'etc/intro' <<'END_OF_FILE'
  167. XWellcome to ix/MBox BBS
  168. END_OF_FILE
  169.   if test 24 -ne `wc -c <'etc/intro'`; then
  170.     echo shar: \"'etc/intro'\" unpacked with wrong size!
  171.   fi
  172.   # end of 'etc/intro'
  173. fi
  174. if test -f 'etc/mbd.log' -a "${1}" != "-c" ; then 
  175.   echo shar: Will not clobber existing file \"'etc/mbd.log'\"
  176. else
  177.   echo shar: Extracting \"'etc/mbd.log'\" \(0 characters\)
  178.   sed "s/^X//" >'etc/mbd.log' <<'END_OF_FILE'
  179. END_OF_FILE
  180.   if test 0 -ne `wc -c <'etc/mbd.log'`; then
  181.     echo shar: \"'etc/mbd.log'\" unpacked with wrong size!
  182.   fi
  183.   # end of 'etc/mbd.log'
  184. fi
  185. if test -f 'etc/mbox.calls' -a "${1}" != "-c" ; then 
  186.   echo shar: Will not clobber existing file \"'etc/mbox.calls'\"
  187. else
  188.   echo shar: Extracting \"'etc/mbox.calls'\" \(0 characters\)
  189.   sed "s/^X//" >'etc/mbox.calls' <<'END_OF_FILE'
  190. END_OF_FILE
  191.   if test 0 -ne `wc -c <'etc/mbox.calls'`; then
  192.     echo shar: \"'etc/mbox.calls'\" unpacked with wrong size!
  193.   fi
  194.   # end of 'etc/mbox.calls'
  195. fi
  196. if test -f 'etc/mbox.editors' -a "${1}" != "-c" ; then 
  197.   echo shar: Will not clobber existing file \"'etc/mbox.editors'\"
  198. else
  199.   echo shar: Extracting \"'etc/mbox.editors'\" \(627 characters\)
  200.   sed "s/^X//" >'etc/mbox.editors' <<'END_OF_FILE'
  201. X/***************************************************************************/
  202. X/* Diese Datei enthaelt die Liste der verfuegbaren Editoren. Die Struktur  */
  203. X/* ist folgende:                               */
  204. X/*                                       */
  205. X/* Name        Pfad zum Editor                           */
  206. X/* ======================================================================= */
  207. X/* Led       /usr/bin/led                           */
  208. X/* Vi        /usr/bin/vi                           */
  209. X/*                                       */
  210. X/* ACHTUNG: Zwischen Kommentar und Liste EINE Leerzeile einfuegen !       */
  211. X/***************************************************************************/
  212. X
  213. XLed    /usr/bin/bled
  214. XMined    /usr/bin/mined
  215. XVi    /usr/bin/vi
  216. XMicroEmacs    /usr/bin/me
  217. END_OF_FILE
  218.   if test 627 -ne `wc -c <'etc/mbox.editors'`; then
  219.     echo shar: \"'etc/mbox.editors'\" unpacked with wrong size!
  220.   fi
  221.   # end of 'etc/mbox.editors'
  222. fi
  223. if test -f 'etc/mbox.seq' -a "${1}" != "-c" ; then 
  224.   echo shar: Will not clobber existing file \"'etc/mbox.seq'\"
  225. else
  226.   echo shar: Extracting \"'etc/mbox.seq'\" \(2 characters\)
  227.   sed "s/^X//" >'etc/mbox.seq' <<'END_OF_FILE'
  228. X1
  229. END_OF_FILE
  230.   if test 2 -ne `wc -c <'etc/mbox.seq'`; then
  231.     echo shar: \"'etc/mbox.seq'\" unpacked with wrong size!
  232.   fi
  233.   # end of 'etc/mbox.seq'
  234. fi
  235. if test -f 'etc/mbox.who' -a "${1}" != "-c" ; then 
  236.   echo shar: Will not clobber existing file \"'etc/mbox.who'\"
  237. else
  238.   echo shar: Extracting \"'etc/mbox.who'\" \(0 characters\)
  239.   sed "s/^X//" >'etc/mbox.who' <<'END_OF_FILE'
  240. END_OF_FILE
  241.   if test 0 -ne `wc -c <'etc/mbox.who'`; then
  242.     echo shar: \"'etc/mbox.who'\" unpacked with wrong size!
  243.   fi
  244.   # end of 'etc/mbox.who'
  245. fi
  246. if test -f 'etc/pd.log' -a "${1}" != "-c" ; then 
  247.   echo shar: Will not clobber existing file \"'etc/pd.log'\"
  248. else
  249.   echo shar: Extracting \"'etc/pd.log'\" \(0 characters\)
  250.   sed "s/^X//" >'etc/pd.log' <<'END_OF_FILE'
  251. END_OF_FILE
  252.   if test 0 -ne `wc -c <'etc/pd.log'`; then
  253.     echo shar: \"'etc/pd.log'\" unpacked with wrong size!
  254.   fi
  255.   # end of 'etc/pd.log'
  256. fi
  257. if test -f 'etc/pd.script' -a "${1}" != "-c" ; then 
  258.   echo shar: Will not clobber existing file \"'etc/pd.script'\"
  259. else
  260.   echo shar: Extracting \"'etc/pd.script'\" \(0 characters\)
  261.   sed "s/^X//" >'etc/pd.script' <<'END_OF_FILE'
  262. END_OF_FILE
  263.   if test 0 -ne `wc -c <'etc/pd.script'`; then
  264.     echo shar: \"'etc/pd.script'\" unpacked with wrong size!
  265.   fi
  266.   # end of 'etc/pd.script'
  267. fi
  268. if test -f 'etc/reflector.log' -a "${1}" != "-c" ; then 
  269.   echo shar: Will not clobber existing file \"'etc/reflector.log'\"
  270. else
  271.   echo shar: Extracting \"'etc/reflector.log'\" \(0 characters\)
  272.   sed "s/^X//" >'etc/reflector.log' <<'END_OF_FILE'
  273. END_OF_FILE
  274.   if test 0 -ne `wc -c <'etc/reflector.log'`; then
  275.     echo shar: \"'etc/reflector.log'\" unpacked with wrong size!
  276.   fi
  277.   # end of 'etc/reflector.log'
  278. fi
  279. if test -f 'etc/rmail.sh' -a "${1}" != "-c" ; then 
  280.   echo shar: Will not clobber existing file \"'etc/rmail.sh'\"
  281. else
  282.   echo shar: Extracting \"'etc/rmail.sh'\" \(727 characters\)
  283.   sed "s/^X//" >'etc/rmail.sh' <<'END_OF_FILE'
  284. X#---------------------------------------------------------------------------
  285. X#
  286. X#                       ix/MBox  R M A I L . S H
  287. X#          Mailbox-Programm fuer UNIX(-Derivate)
  288. X#            
  289. X#               Volker Schuermann
  290. X#              Wuppertal, FRG, 08.12.1991
  291. X#
  292. X#---------------------------------------------------------------------------
  293. X# Dieses Script uebergibt eine "persoenliche Mail" und eine Empfaenger-
  294. X# Adresse an das Programm RMAIL. Die "persoenliche Mail" enthaelt bereits
  295. X# einen (fast) kompletten Header !
  296. X#---------------------------------------------------------------------------
  297. X# Parameter:
  298. X#
  299. X# $1  ->  Name der Datei ("persoenliche Mail" s.o.)
  300. X# $2  ->  Empfaenger der Mail
  301. X# 
  302. X# Beispiel:
  303. X#
  304. X# rmail -d -i $1 $2
  305. X
  306. Xrmail -d -i $1 $2
  307. END_OF_FILE
  308.   if test 727 -ne `wc -c <'etc/rmail.sh'`; then
  309.     echo shar: \"'etc/rmail.sh'\" unpacked with wrong size!
  310.   fi
  311.   # end of 'etc/rmail.sh'
  312. fi
  313. if test -f 'etc/tset' -a "${1}" != "-c" ; then 
  314.   echo shar: Will not clobber existing file \"'etc/tset'\"
  315. else
  316.   echo shar: Extracting \"'etc/tset'\" \(21 characters\)
  317.   sed "s/^X//" >'etc/tset' <<'END_OF_FILE'
  318. XTERM=$1
  319. Xexport TERM
  320. X
  321. END_OF_FILE
  322.   if test 21 -ne `wc -c <'etc/tset'`; then
  323.     echo shar: \"'etc/tset'\" unpacked with wrong size!
  324.   fi
  325.   chmod +x 'etc/tset'
  326.   # end of 'etc/tset'
  327. fi
  328. if test -f 'src/HISTORY' -a "${1}" != "-c" ; then 
  329.   echo shar: Will not clobber existing file \"'src/HISTORY'\"
  330. else
  331.   echo shar: Extracting \"'src/HISTORY'\" \(1757 characters\)
  332.   sed "s/^X//" >'src/HISTORY' <<'END_OF_FILE'
  333. X/***************************************************************************/
  334. X/*        PROGRAMM  ix/Mbox                           */
  335. X/*             DATEI  HISTORY                           */
  336. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  337. X/*  LETZTE AENDERUNG  20.02.1992                       */
  338. X/***************************************************************************/
  339. X
  340. X20.04.1991  ->  Erste Versuche einen NEWS-Reader im Stil der alten "PC-Boxen"
  341. X        zu basteln (sind positiv verlaufen)
  342. X
  343. X21.04.1991  ->  Schreiben an NGs via PNEWS                 
  344. X
  345. X22.04.1991  ->  REPLY via PNEWS
  346. X
  347. X23.04.1991  ->  SH-unabhaengiges Accounting
  348. X
  349. X26.04.1991  ->  Persoenliche Mail lesen, schreiben, beantworten
  350. X
  351. X11.05.1991  ->  Inhalt/Datum, Status
  352. X
  353. X01.06.1991  ->  Vorbereitung fuer die Portierung
  354. X
  355. X02.06.1991  ->  Erste BETA-Test Version an die Portierer/Tester verschickt
  356. X
  357. X18.06.1991  ->  Makro-Befehle implementiert
  358. X
  359. X15.08.1991  ->  SVR3 einigermassen angepasst, LOCK-Mechanismus eingebaut,
  360. X        NNPOST und RMAIL ermoeglicht, versuchweise _SYS_ACCOUNT
  361. X        integriert
  362. X
  363. X21.09.1991  ->  Scanner-Datum beim LOGOUT aktuallisieren, nicht mehr bei
  364. X        init_user()
  365. X
  366. X21.10.1991  ->  Option fuer Online-Spiele implementiert
  367. X
  368. X26.10.1991  ->  Endlich ein "anstaendiges" Makefile:-)
  369. X
  370. X12.11.1991  ->  Die Anspassung an SVR3 laeuft auf Hochtouren
  371. X
  372. X16.11.1991  ->  Referenzversion 1.6.0 ueber "sub.os.minix" gepostet
  373. X
  374. X17.11.1991  ->  Patchlevel PL1 fertiggestellt
  375. X           
  376. X27.11.1991  ->  Patchlevel PL3 mit schnellerem MB-DAEMON ausgeliefert
  377. X
  378. X06.12.1991  ->  Umgestellt auf RMAIL & INEWS (Header mit Refs. etc.)
  379. X
  380. X28.12.1991  ->  Internationale Version (DEFINES, README, etc.) ausgeliefert
  381. X
  382. X04.01.1992  ->  MAIL- & NEWS-Header editierbar (Followup etc.)
  383. X
  384. X20.02.1992  ->  Eigener DOWNLOAD-Befehl. MB-DAEMON erstellt LIB online (opt.)
  385. END_OF_FILE
  386.   if test 1757 -ne `wc -c <'src/HISTORY'`; then
  387.     echo shar: \"'src/HISTORY'\" unpacked with wrong size!
  388.   fi
  389.   # end of 'src/HISTORY'
  390. fi
  391. if test -f 'src/baudrate.c' -a "${1}" != "-c" ; then 
  392.   echo shar: Will not clobber existing file \"'src/baudrate.c'\"
  393. else
  394.   echo shar: Extracting \"'src/baudrate.c'\" \(1710 characters\)
  395.   sed "s/^X//" >'src/baudrate.c' <<'END_OF_FILE'
  396. X/***************************************************************************/
  397. X/*        PROGRAMM  ix/Mbox                           */
  398. X/*             DATEI  baudrate.c                       */
  399. X/*        FUNKTIONEN  baudrate()                       */
  400. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  401. X/*  LETZTE AENDERUNG  16.03.1992                       */
  402. X/***************************************************************************/
  403. X
  404. X#include <stdio.h>
  405. X#include <time.h>
  406. X
  407. X#include "mbox.h"
  408. X
  409. X
  410. X#ifdef _SYS7    /* UNIX System 7  (MINIX, COHERENT, ...) */
  411. X
  412. X#include  <sgtty.h>
  413. Xstatic struct sgttyb told;
  414. X
  415. X#else        /* UNIX System V  (UNIX, XENIX, ESIX, ...) */
  416. X
  417. X#include  <sys/termio.h> 
  418. Xstatic struct termio told;
  419. X
  420. X#endif
  421. X
  422. X
  423. X#define BYTE    0377    /* Don't ask me, ask Andy !! */
  424. X
  425. X
  426. Xint baudrate( try )
  427. Xint try;
  428. X{
  429. X  int i, j = 0;
  430. X  int guess = -1;
  431. X  long ts, tn;
  432. X
  433. X
  434. X  if(BAUDRATE != 0) return BAUDRATE;
  435. X
  436. X#ifdef _SYS7
  437. X  
  438. X  ioctl( 0, TIOCGETP, &told );
  439. X  guess = (int) (100 * (told.sg_ospeed & BYTE));
  440. X
  441. X#else
  442. X
  443. X  ioctl( 0, TCGETA, &told );
  444. X
  445. X  if(told.c_cflag &=    B300) guess = (int)   300;
  446. X  if(told.c_cflag &=   B1200) guess = (int)  1200;
  447. X  if(told.c_cflag &=   B2400) guess = (int)  2400;
  448. X  if(told.c_cflag &=   B4800) guess = (int)  4800;
  449. X  if(told.c_cflag &=   B9600) guess = (int)  9600;
  450. X  /*
  451. X  if(told.c_cflag &=  B14400) guess = (int) 14400;
  452. X  */
  453. X  if(told.c_cflag &=  B19200) guess = (int) 19200;
  454. X  if(told.c_cflag &=  B38400) guess = (int) 38400;
  455. X
  456. X#endif
  457. X
  458. X#ifdef _BAUDRATE      /* HST mit 'fixed baudrate 19.2k' */
  459. X    
  460. X  if((guess == MAX_BPS) || (guess == 0)){
  461. X
  462. X    guess = 300;
  463. X
  464. X    if(try >   300) guess =  1200;
  465. X    if(try >  1200) guess =  2400;
  466. X    if(try >  2400) guess =  9600;
  467. X    if(try >  9600) guess = 14400;
  468. X    if(try > 14400) guess = 19200;
  469. X  }
  470. X
  471. X#endif
  472. X
  473. X  return guess;
  474. X
  475. X}
  476. END_OF_FILE
  477.   if test 1710 -ne `wc -c <'src/baudrate.c'`; then
  478.     echo shar: \"'src/baudrate.c'\" unpacked with wrong size!
  479.   fi
  480.   # end of 'src/baudrate.c'
  481. fi
  482. if test -f 'src/coreleft.c' -a "${1}" != "-c" ; then 
  483.   echo shar: Will not clobber existing file \"'src/coreleft.c'\"
  484. else
  485.   echo shar: Extracting \"'src/coreleft.c'\" \(657 characters\)
  486.   sed "s/^X//" >'src/coreleft.c' <<'END_OF_FILE'
  487. X/***************************************************************************/
  488. X/*        PROGRAMM  ix/MBox                           */
  489. X/*             DATEI  coreleft.c                       */
  490. X/*        FUNKTIONEN  coreleft()                       */
  491. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  492. X/*  LETZTE AENDERUNG  24.11.1991                       */
  493. X/***************************************************************************/
  494. X
  495. X#ifdef _SYS7
  496. X#include <stdlib.h>
  497. X#else
  498. X#include <stdio.h>
  499. X#include <malloc.h>
  500. X#endif
  501. X
  502. X
  503. Xint coreleft()
  504. X{
  505. X  char *buffer;
  506. X  long size = 32L;
  507. X
  508. X  do{
  509. X    size *= 2;
  510. X    buffer = malloc(size);
  511. X    if(buffer != NULL) free( buffer );
  512. X  }while(buffer != NULL);
  513. X
  514. X  return (int) size;
  515. X}
  516. X
  517. END_OF_FILE
  518.   if test 657 -ne `wc -c <'src/coreleft.c'`; then
  519.     echo shar: \"'src/coreleft.c'\" unpacked with wrong size!
  520.   fi
  521.   # end of 'src/coreleft.c'
  522. fi
  523. if test -f 'src/games.c' -a "${1}" != "-c" ; then 
  524.   echo shar: Will not clobber existing file \"'src/games.c'\"
  525. else
  526.   echo shar: Extracting \"'src/games.c'\" \(1155 characters\)
  527.   sed "s/^X//" >'src/games.c' <<'END_OF_FILE'
  528. X/***************************************************************************/
  529. X/*        PROGRAMM  ix/Mbox                           */
  530. X/*             DATEI  games.c                           */
  531. X/*        FUNKTIONEN  games()                           */
  532. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  533. X/*  LETZTE AENDERUNG  25.11.1991                       */
  534. X/***************************************************************************/
  535. X
  536. X#include <stdio.h>
  537. X#include "mbox.h"
  538. X
  539. X
  540. Xgames()
  541. X{
  542. X  FILE *fp;
  543. X  int i, c;
  544. X
  545. X  char s[STRING];
  546. X  char GAME[MAX_GAMES][STRING];
  547. X
  548. X
  549. X  headline( GA01_MSG );
  550. X  printf("\n");
  551. X
  552. X  fp = fopen(GAMES, "r");
  553. X  if (fp == NULL) {
  554. X    nerror("games.c", 19, "games", "Datei-Lesefehler", GAMES);
  555. X  }
  556. X  i = 0;
  557. X  while((fgets(s, 80, fp) != NULL) && (s[0] == '/'));
  558. X  while((i < MAX_GAMES) && (fscanf(fp, "%s %s", s, GAME[i]) > 0)){
  559. X    i++;
  560. X    printf("  %d - %s\n\n", i, s); 
  561. X  }
  562. X  fclose(fp);
  563. X
  564. X  ansi("md");
  565. X  printf("\n%s > ", GA02_MSG);
  566. X  ansi("me");
  567. X
  568. X  c = getint();
  569. X  if(c > 32) printf("%c", c);
  570. X  c -= 49;
  571. X
  572. X  if((c >= 0) && (c < i)){
  573. X    printf("\n\n");
  574. X    sprintf(s, "%s %s %d %d", RSH, GAME[c], OLDUID, OLDGID);
  575. X    system(s);    
  576. X  }
  577. X  else{
  578. X    ansi("md");
  579. X    printf(" %s\n", GA03_MSG);
  580. X    ansi("me");
  581. X  }
  582. X}
  583. X
  584. END_OF_FILE
  585.   if test 1155 -ne `wc -c <'src/games.c'`; then
  586.     echo shar: \"'src/games.c'\" unpacked with wrong size!
  587.   fi
  588.   # end of 'src/games.c'
  589. fi
  590. if test -f 'src/getch.c' -a "${1}" != "-c" ; then 
  591.   echo shar: Will not clobber existing file \"'src/getch.c'\"
  592. else
  593.   echo shar: Extracting \"'src/getch.c'\" \(1728 characters\)
  594.   sed "s/^X//" >'src/getch.c' <<'END_OF_FILE'
  595. X/*
  596. X *    %Z% %M%    %I% %D% %Q%
  597. X *
  598. X *    Copyright (C) 1990 by Christian Schlichtherle
  599. X *                  (chriss@attron.ruhr.sub.org)
  600. X *
  601. X *    %M% - C module for getch(S).
  602. X *
  603. X *    "getch" is a DOS and curses(S) like function which reads
  604. X *    a character and returns immediately without waiting for
  605. X *    newline.
  606. X *
  607. X *
  608. X *      MINIX-Version (this one) (!(c)) 4/1991
  609. X *            by Volker Schuermann    
  610. X *                 (volkers@unnet.ruhr.sub.org)
  611. X *
  612. X *
  613. X */
  614. X
  615. X
  616. X#if    !defined(lint) && !defined(library)
  617. Xstatic char    sccsid[] = "%Z% %M% %I% %D% %Q%";
  618. X#endif /* not lint and not library */
  619. X
  620. X#include <sys/types.h>
  621. X#include <stdio.h>
  622. X#include <unistd.h>
  623. X#include <errno.h>
  624. X#include <sgtty.h>
  625. X
  626. X
  627. X/*
  628. X * getch - Gets a character.
  629. X * This function gets one character and immediately returns
  630. X * without waiting for newline. The character is not echoed.
  631. X * This function can be used best when you want to input only one
  632. X * character within canonical input or if you need this function
  633. X * only very rarely.
  634. X * EOF is returned on errors or if an ignored signal occured.
  635. X */
  636. Xint    getch()
  637. X{
  638. X    static struct sgttyb    told, tnew;
  639. X    static int    set = 0;
  640. X    int    rstat;
  641. X    char    c;
  642. X
  643. X    if (!set) {
  644. X            /* Get old terminal mode. */
  645. X
  646. X            ioctl( 0, TIOCGETP, &told );
  647. X
  648. X
  649. X        /*
  650. X         * Set new terminal mode. Switch off
  651. X         * canonical input and echoing.
  652. X         */
  653. X        tnew = told;
  654. X
  655. X        tnew.sg_flags |= RAW;
  656. X        tnew.sg_flags &= ~ECHO;
  657. X
  658. X            /* Don't execute this part anymore. */
  659. X        set = 1;
  660. X    }
  661. X
  662. X        /* Set new terminal mode. */
  663. X    ioctl(0, TIOCSETP, &tnew);
  664. X
  665. X        /* Read one character. */
  666. X    rstat = read(0, &c, 1);
  667. X
  668. X        /* Reset old terminal mode.
  669. X           Don't get disturbed by ignored signals. */
  670. X    while (ioctl(0, TIOCSETP, &told) == -1)
  671. X        if (errno != EINTR)
  672. X            return (EOF);  
  673. X
  674. X    if (rstat != 1)
  675. X        return (EOF);
  676. X    return((int)c);
  677. X}
  678. X
  679. X
  680. X
  681. END_OF_FILE
  682.   if test 1728 -ne `wc -c <'src/getch.c'`; then
  683.     echo shar: \"'src/getch.c'\" unpacked with wrong size!
  684.   fi
  685.   # end of 'src/getch.c'
  686. fi
  687. if test -f 'src/mbrsh.c' -a "${1}" != "-c" ; then 
  688.   echo shar: Will not clobber existing file \"'src/mbrsh.c'\"
  689. else
  690.   echo shar: Extracting \"'src/mbrsh.c'\" \(725 characters\)
  691.   sed "s/^X//" >'src/mbrsh.c' <<'END_OF_FILE'
  692. X/***************************************************************************/
  693. X/*        PROGRAMM  ix/Mbox                           */
  694. X/*             DATEI  mbrsh.c                           */
  695. X/*        FUNKTIONEN  main()                           */
  696. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  697. X/*  LETZTE AENDERUNG  16.11.1991                       */
  698. X/***************************************************************************/
  699. X
  700. X#include <stdio.h>
  701. X#include <sys/types.h>
  702. X#include <unistd.h>
  703. X
  704. Xint main(argc, argv)
  705. Xint argc;
  706. Xchar *argv[];
  707. X{
  708. X  char s[255];
  709. X  int i, j;
  710. X
  711. X  setgid( atoi(argv[argc -1]) );
  712. X  setuid( atoi(argv[argc -2]) );
  713. X
  714. X  strcpy(s, "exec ");
  715. X  j = argc -2;
  716. X
  717. X  for(i = 1; i < j; i++){
  718. X    strcat(s, argv[i]);
  719. X    strcat(s, " ");
  720. X  }
  721. X
  722. X  system( s );
  723. X
  724. X  return 0;
  725. X}
  726. END_OF_FILE
  727.   if test 725 -ne `wc -c <'src/mbrsh.c'`; then
  728.     echo shar: \"'src/mbrsh.c'\" unpacked with wrong size!
  729.   fi
  730.   # end of 'src/mbrsh.c'
  731. fi
  732. if test -f 'src/patchlevel.h' -a "${1}" != "-c" ; then 
  733.   echo shar: Will not clobber existing file \"'src/patchlevel.h'\"
  734. else
  735.   echo shar: Extracting \"'src/patchlevel.h'\" \(602 characters\)
  736.   sed "s/^X//" >'src/patchlevel.h' <<'END_OF_FILE'
  737. X/***************************************************************************/
  738. X/*        PROGRAMM  ix/MBox                           */
  739. X/*             DATEI  patchlevel.h                       */
  740. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  741. X/*  LETZTE AENDERUNG  28.02.1992                       */
  742. X/***************************************************************************/
  743. X  
  744. X/***************************************************************************/
  745. X/*  PATCHLEVEL       - Nummer der zuletzt installierten CDIFFS           */
  746. X/***************************************************************************/
  747. X
  748. X#define PATCHLEVEL    "PL9a"
  749. END_OF_FILE
  750.   if test 602 -ne `wc -c <'src/patchlevel.h'`; then
  751.     echo shar: \"'src/patchlevel.h'\" unpacked with wrong size!
  752.   fi
  753.   # end of 'src/patchlevel.h'
  754. fi
  755. if test -f 'src/test.c' -a "${1}" != "-c" ; then 
  756.   echo shar: Will not clobber existing file \"'src/test.c'\"
  757. else
  758.   echo shar: Extracting \"'src/test.c'\" \(128 characters\)
  759.   sed "s/^X//" >'src/test.c' <<'END_OF_FILE'
  760. Xmain()
  761. X{
  762. X  char s[80];
  763. X  int i;
  764. X  for( i = 0; i < 10; i++){
  765. X       *(s + i) = 'B';
  766. X  }
  767. X  s[i] = '\0';
  768. X
  769. X  printf("%s", s);
  770. X
  771. X
  772. X}
  773. END_OF_FILE
  774.   if test 128 -ne `wc -c <'src/test.c'`; then
  775.     echo shar: \"'src/test.c'\" unpacked with wrong size!
  776.   fi
  777.   # end of 'src/test.c'
  778. fi
  779. if test -f 'src/undef.c' -a "${1}" != "-c" ; then 
  780.   echo shar: Will not clobber existing file \"'src/undef.c'\"
  781. else
  782.   echo shar: Extracting \"'src/undef.c'\" \(17 characters\)
  783.   sed "s/^X//" >'src/undef.c' <<'END_OF_FILE'
  784. X#undef _MBOX
  785. X
  786. X
  787. X
  788. X
  789. END_OF_FILE
  790.   if test 17 -ne `wc -c <'src/undef.c'`; then
  791.     echo shar: \"'src/undef.c'\" unpacked with wrong size!
  792.   fi
  793.   # end of 'src/undef.c'
  794. fi
  795. echo shar: End of archive 10 \(of 10\).
  796. cp /dev/null ark10isdone
  797. MISSING=""
  798. for I in 1 2 3 4 5 6 7 8 9 10 ; do
  799.     if test ! -f ark${I}isdone ; then
  800.     MISSING="${MISSING} ${I}"
  801.     fi
  802. done
  803. if test "${MISSING}" = "" ; then
  804.     echo You have unpacked all 10 archives.
  805.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  806. else
  807.     echo You still must unpack the following archives:
  808.     echo "        " ${MISSING}
  809. fi
  810. exit 0
  811. exit 0 # Just in case...
  812.