home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume35 / mbox / part14 < prev    next >
Encoding:
Text File  |  1993-02-04  |  54.0 KB  |  1,840 lines

  1. Newsgroups: comp.sources.misc
  2. From: Volker.Schuermann@unnet.w.open.de (Volker Schuermann)
  3. Subject: v35i049:  mbox - ix/Mbox, A BBS for UNIX and MINIX v1.6 PL10j7, Part14/15
  4. Message-ID: <1993Feb5.190001.10879@sparky.imd.sterling.com>
  5. X-Md4-Signature: 369faef603273dbbf1023fb86ccb8df7
  6. Date: Fri, 5 Feb 1993 19:00:01 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Volker.Schuermann@unnet.w.open.de (Volker Schuermann)
  10. Posting-number: Volume 35, Issue 49
  11. Archive-name: mbox/part14
  12. Environment: MINIX, ISC, ESIX, SVR3
  13. Supersedes: mbox: Volume 31, Issue 16-27
  14.  
  15. #! /bin/sh
  16. # This is a shell archive.  Remove anything before this line, then feed it
  17. # into a shell via "sh file" or similar.  To overwrite existing files,
  18. # type "sh file -c".
  19. # Contents:  FAQ etc/alias.sh etc/english.befehl etc/help.befehle
  20. #   etc/mbox.packers etc/rmail.sh etc/sysinfo.U etc/xmd.alias rz.cdiff
  21. #   src/CROSSREF src/HISTORY src/baudrate.c src/befehl.c src/bled.doc
  22. #   src/derror.c src/dis.c src/getch.c src/help.c src/nerror.c
  23. #   src/outdial.c wendy/echo.c wendy/english.hlp wendy/getch.c
  24. #   wendy/wendy.h
  25. # Wrapped by kent@sparky on Fri Feb  5 12:18:19 1993
  26. PATH=/bin:/usr/bin:/usr/ucb:/usr/local/bin:/usr/lbin ; export PATH
  27. echo If this archive is complete, you will see the following message:
  28. echo '          "shar: End of archive 14 (of 15)."'
  29. if test -f 'FAQ' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'FAQ'\"
  31. else
  32.   echo shar: Extracting \"'FAQ'\" \(2491 characters\)
  33.   sed "s/^X//" >'FAQ' <<'END_OF_FILE'
  34. XFAQs // ix/MBox BBS 1.6 PL10j7 // 25.01.1993
  35. X
  36. X
  37. XQ: Why does the BBS 'core', when I try to start it the FIRST time?
  38. XA: Maybe you've forgotten to 'make world' first?
  39. X
  40. XQ: Why does the BBS speak german?
  41. XA: You have to 'make english' to get the english version.
  42. X
  43. XQ: Why doesn't the BBS report any boards with OLD articles?
  44. XA: Type in 'mb-daemon all -x' and be patient ... (you have to be ROOT !)
  45. X   Check your 'Boards'-Entry with the 'admin' command!
  46. X
  47. XQ: Why doesn't the BBS report any boards with NEW articles?
  48. XA: Check your scanner-date. Use 'setup'!
  49. X
  50. XQ: Why do I always get problems if I try to mail or write something?
  51. XA: It sounds like you've forgotten to use SETUID root.root for [mbox].
  52. X
  53. XQ: Why does the BBS terminate everytime I try to get in as ROOT?
  54. XA: You've defined the ONE AND ONLY terminal, which ROOT may use, in
  55. X   [mbox.h], do you remember??
  56. X
  57. XQ: Why do I never see new NEWS in the boards of BBS?
  58. XA: Maybe you never start MB-DAEMON by cron!?
  59. X
  60. XQ: Why do I only get a few newsgroups instead of all?
  61. XA: Use the command "admin" and choose "change user" option. There you'll
  62. X   find a "newsgroups" entry. Delete the list of groups and just type "all"!
  63. X
  64. XQ: Why do I have trillions of mails in postmasters maildrop?
  65. XA: You should start XMD by cron hourly!
  66. X
  67. XQ: Why does XMD crash instead of delivering mails?
  68. XA: It has to be owned by 'root.root'!
  69. X
  70. XQ: Why seems MB-DAEMON to be sooooo slow?
  71. XA: Spend a TMP-directory on the same FS as HOME|MBOXHOME!
  72. X
  73. XQ: Why do I get addresses like this in UUCP-Spoolfiles:
  74. X   From: unnet!Volker.Schuermann@unnet.w.open.DE
  75. XA: It's a problem with RMAIL. Have a look at README.addrpatch to fix it!
  76. X
  77. XQ: How can I include ELM etc. to the BBS command set?
  78. XA: Check README, Section: User defined Commands!
  79. X
  80. XQ: Why does the BBS blow up, when I use C-NEWS?
  81. XA: Maybe I haven't implemented the aliasing mechanism correct - please
  82. X   tell me, how it works!
  83. X
  84. XQ: Is there any risk to loose one of my system-files?
  85. XA: Yes, If you play around with MB-DAEMON, you may destroy [~/news/active]!
  86. X   Be clever: Copy first, destroy later ;-)
  87. X
  88. XQ: Why does my SMAIL create a second Message-ID & Received-Field ?
  89. XA: Just set the SMAIL-Flag "-received_field". To make live easier, append
  90. X   the flag "error_copy_postmaster", too! 
  91. X
  92. XQ: It it possible to port the BBS to system XYZ?
  93. XA: Just try it :-) If you've done so, send the DIFFs to me!
  94. X
  95. XQ: Are there any plans to develope further versions of this BBS?
  96. XA: Surely! Join our Mailing-List to stay put - see README how to do that!
  97. X
  98. X
  99. END_OF_FILE
  100.   if test 2491 -ne `wc -c <'FAQ'`; then
  101.     echo shar: \"'FAQ'\" unpacked with wrong size!
  102.   fi
  103.   # end of 'FAQ'
  104. fi
  105. if test -f 'etc/alias.sh' -a "${1}" != "-c" ; then 
  106.   echo shar: Will not clobber existing file \"'etc/alias.sh'\"
  107. else
  108.   echo shar: Extracting \"'etc/alias.sh'\" \(908 characters\)
  109.   sed "s/^X//" >'etc/alias.sh' <<'END_OF_FILE'
  110. X#---------------------------------------------------------------------------
  111. X#
  112. X#                       ix/MBox  A L I A S . S H
  113. X#          Mailbox-Programm fuer UNIX(-Derivate)
  114. X#            
  115. X#               Volker Schuermann
  116. X#              Wuppertal, FRG, 08.12.1991
  117. X#
  118. X#---------------------------------------------------------------------------
  119. X# Dieses Script fuegt einen Eintrag fuer jeden neuen User der ix/MBox an die
  120. X# Alias-Datei von SMAIL (etc.) an und erzeugt einen neue Alias-Datenbank. 
  121. X#
  122. X# Wird UMAIL statt SMAIL verwendet, sollten alle Zeilen dieses Scripts' aus-
  123. X# kommentiert werden.
  124. X#---------------------------------------------------------------------------
  125. X# Parameter:
  126. X#
  127. X# $1  ->  Name des neuen Users im Format "Vorname.Nachname"
  128. X# 
  129. X# Beispiel:
  130. X#
  131. X# echo $1 "        " \"\|/usr/bin/xmd $1 -\" >> /usr/lib/smail/aliases
  132. X# /usr/bin/mkaliases
  133. X
  134. Xecho $1 "        " \"\|/usr/bin/xmd $1 -\" >> /usr/lib/smail/aliases
  135. X#/usr/bin/mkaliases
  136. END_OF_FILE
  137.   if test 908 -ne `wc -c <'etc/alias.sh'`; then
  138.     echo shar: \"'etc/alias.sh'\" unpacked with wrong size!
  139.   fi
  140.   # end of 'etc/alias.sh'
  141. fi
  142. if test -f 'etc/english.befehl' -a "${1}" != "-c" ; then 
  143.   echo shar: Will not clobber existing file \"'etc/english.befehl'\"
  144. else
  145.   echo shar: Extracting \"'etc/english.befehl'\" \(2169 characters\)
  146.   sed "s/^X//" >'etc/english.befehl' <<'END_OF_FILE'
  147. X/***************************************************************************/
  148. X/* Please make changes to this file VERY wisely! Remember that you have to */
  149. X/* list D(ir) before DA(te) and M(ail) before MA(cro) to stay conform with */
  150. X/* GEONET etc. ...                               */
  151. X/*                                           */
  152. X/*                 Description                           */
  153. X/* ======================================================================= */
  154. X/* ID            - Number of command (see 'loop.c')               */
  155. X/* Intern        - Need Userlevel X to execute the command           */
  156. X/* Extern        - Oldfashioned diff between int. & ext. access           */
  157. X/* Prototyp      - If this value is '1', the command is shown in helpfile  */
  158. X/* Befehl        - That's the name of the command               */
  159. X/*                                       */
  160. X/*                                       */
  161. X/* NOTE: Leave ONE blank line between this comment-box and the ID-Line!    */
  162. X/***************************************************************************/
  163. X
  164. XID    Intern  Extern  Prototyp  Befehl 
  165. X===============================================
  166. X110    0    0    1    +
  167. X120    0    0    1    -
  168. X260    0    0    1    Account
  169. X125    9    9    0    Admin
  170. X460    0    0    1    Area
  171. X150    0    0    1    Board
  172. X170    0    0    1    Chat
  173. X200    0    0    1    Dir
  174. X370    0    0    1    Date
  175. X220    1    1    1    Delete
  176. X440    0    0    1    Download
  177. X150    0    0    0    Cd
  178. X490      0    0    1    Discussion
  179. X400     0       0       1       Direction
  180. X180    0    0    0    End
  181. X480      1    1    1    Edit
  182. X300    1    1    1    Finger
  183. X340    1    1    1    Forward
  184. X390     0    0    1    Games
  185. X180    0    0    1    Goodbye
  186. X180    0    0    0    Quit
  187. X180    0    0    0    Bye
  188. X190    0    0    1    Help
  189. X160    0    2    1    Mail
  190. X330     0       0       1       Macro
  191. X140    0    0    1    Message
  192. X240    6    6    1    Minix
  193. X510    9    9    1    Monitor
  194. X240    6    6    0    Execute
  195. X450     7    7    0    Outdial
  196. X270    0    0    1    Portinfo
  197. X130    0    0    1    Protocol
  198. X250    0    0    1    PM
  199. X210    0    0    1    Read
  200. X280    0    0    1    Setup
  201. X470    0    0    1    Sysinfo
  202. X280    0    0    0    Password
  203. X280    0    0    0    Ansi
  204. X280    0    0    0    Bell
  205. X280    0    0    0    Address
  206. X310    1    0    1    Signature
  207. X290    0    0    1    State
  208. X410     0       0       1       Statistics
  209. X430     1       1       1       Search
  210. X380    0    0    1    Time
  211. X300    0    0    1    Users
  212. X320    0    0    1    Version        
  213. X230    0    5    1    Write
  214. X270    0    0    0    Who
  215. X420    0    0    0    RING
  216. X195    0    1    0    ~PD
  217. X215    0    0    0    Level
  218. X275    9    9    0    Relogin
  219. X350     0       0       0       Sleep
  220. X360     0       0       0       Keypressed
  221. X230     0       5       1       Upload
  222. X180     0       0       0       RING
  223. X998    2    2    0    ~MAIL_DUMMY
  224. END_OF_FILE
  225.   if test 2169 -ne `wc -c <'etc/english.befehl'`; then
  226.     echo shar: \"'etc/english.befehl'\" unpacked with wrong size!
  227.   fi
  228.   # end of 'etc/english.befehl'
  229. fi
  230. if test -f 'etc/help.befehle' -a "${1}" != "-c" ; then 
  231.   echo shar: Will not clobber existing file \"'etc/help.befehle'\"
  232. else
  233.   echo shar: Extracting \"'etc/help.befehle'\" \(2904 characters\)
  234.   sed "s/^X//" >'etc/help.befehle' <<'END_OF_FILE'
  235. X/***************************************************************************/
  236. X/* Wer diese Datei aendert sollte GENAU wissen was er tut. Die Reihen-     */
  237. X/* folge der Befehle ist NICHT willkuerlich festgelegt worden, sondern     */
  238. X/* entspricht der Vorgabe fuer GEOnet-Befehle und deren Abkuerzungen.      */
  239. X/*                                       */
  240. X/* S(chreiben) kommt vor SE(tup) und L(esen) vor LOE(schen) etc. ... wer   */
  241. X/* sich nicht voellig sicher ist, sollte die Datei einfach im Urzustand    */
  242. X/* belassen.                                   */
  243. X/*                                           */
  244. X/*                 Die Bedeutung der versch. Spalten                */
  245. X/* ======================================================================= */
  246. X/* ID            - Nummer des Befehls (siehe "loop()")               */
  247. X/* Intern        - Benoetigtes Userlevel                   */
  248. X/* Extern        - Bei einigen Befehle wird unterscheiden zwischen intern  */
  249. X/*           und extern. Z.B. beim Befehl "schreiben" wird diese     */
  250. X/*           Regelung angewendet, damit User zwar an die lokalen     */
  251. X/*           Bretter senden duerfen, nicht aber an die externen.     */
  252. X/* Prototyp      - Enthaelt diese Spalte eine '1', wird der Befehl bei der */
  253. X/*           Befehlsuebersicht angezeigt.                   */
  254. X/* Befehl        - Unter diesem Namen wird der Befehl aufgerufen           */
  255. X/*                                       */
  256. X/*                                       */
  257. X/* ACHTUNG: Zwischen Kommentar und Ueberschrift EINE Leerzeile einfuegen ! */
  258. X/***************************************************************************/
  259. X
  260. XID    Intern  Extern  Prototyp  Befehl 
  261. X===============================================
  262. X110    0    0    1    +
  263. X120    0    0    1    -
  264. X130    0    0    1    Anrufer
  265. X140    1    0    1    Ansage
  266. X150    0    0    1    Brett
  267. X160    0    2    1    Brief
  268. X170    0    0    1    Chat
  269. X490    0    0    1    Diskussion
  270. X170    0    0    0    Dialog
  271. X370    0    0    0    Datum
  272. X170    0    0    0    Co
  273. X999    0    0    1    Demo
  274. X440     0       0       1       Download
  275. X210    0    0    1    Lesen
  276. X480    1    1    1    Edit
  277. X180    0    0    1    Ende
  278. X180    0    0    0    Quit
  279. X180    0    0    0    Log
  280. X460    0    0    0    Area
  281. X460    0    0    1    Gruppe
  282. X180    0    0    0    Goodbye
  283. X190    0    0    1    Hilfe
  284. X195    0    1    0    ~PD
  285. X200    0    0    1    Inhalt
  286. X200    0    0    0    Dir
  287. X205    0    0    0    Id
  288. X215    0    0    0    Level
  289. X220    1    1    1    Loeschen
  290. X330     0       0       1       Makro
  291. X240    8    8    1    Minix
  292. X510    9    9    1    Monitor
  293. X240    8    8    0    Execute
  294. X450    1    1    1    Outdial
  295. X450    1    1    0    Od
  296. X270    0    0    1    Portinfo
  297. X270    0    0    0    Who
  298. X270    0    0    0    Wer
  299. X260    0    0    1    Postfach
  300. X260    0    0    0    Antrag
  301. X275    9    9    0    Relogin
  302. X400     0       0       1       Richtung
  303. X230    0    5    1    Schreiben
  304. X280    0    0    1    Setup
  305. X390     0    0    1    Spiele
  306. X430    1    1    1    Suchen
  307. X470    0    0    1    Sysinfo
  308. X280    0    0    0    Passwort
  309. X280    0    0    0    Ansi
  310. X280    0    0    0    Bell
  311. X280    0    0    0    Anschrift
  312. X290    0    0    1    Status
  313. X410     0       0       1       Statistik
  314. X300    0    0    1    User
  315. X310    1    0    1    Unterschrift
  316. X230     0       5       1       Upload
  317. X500    0    0    1    Umlaut
  318. X320    0    0    1    Version        
  319. X340    1    1    1    Weiterleiten
  320. X380    0    0    0    Zeit
  321. X125    9    9    0    Admin
  322. X130    0    0    0    Protokoll
  323. X250    0    0    1    PM
  324. X150    0    0    0    Cd
  325. X300    0    0    0    Finger
  326. X160    0    2    0    Mail
  327. X180    0    0    0    Quit
  328. X180    0    0    0    Exit
  329. X180    0    0    0    Logout
  330. X420    0    0    0    RING
  331. X350     0       0       0       Sleep
  332. X360     0       0       0       Keypressed
  333. X998    7    7    0    ~MAIL_DUMMY
  334. END_OF_FILE
  335.   if test 2904 -ne `wc -c <'etc/help.befehle'`; then
  336.     echo shar: \"'etc/help.befehle'\" unpacked with wrong size!
  337.   fi
  338.   # end of 'etc/help.befehle'
  339. fi
  340. if test -f 'etc/mbox.packers' -a "${1}" != "-c" ; then 
  341.   echo shar: Will not clobber existing file \"'etc/mbox.packers'\"
  342. else
  343.   echo shar: Extracting \"'etc/mbox.packers'\" \(798 characters\)
  344.   sed "s/^X//" >'etc/mbox.packers' <<'END_OF_FILE'
  345. X/***************************************************************************/
  346. X/* In dieser Datei befindet sich eine Liste von Komprimieren und Archi-    */
  347. X/* vierern ueber die Artikel im Download-Modus gepackt werden koennen.       */
  348. X/*                                       */
  349. X/* Packer    Kommando         Befehl TAR-Archiv     Endung           */
  350. X/* ======================================================================= */
  351. X/* Compress4.3    /usr/bin/compress    ?    +      .Z           */
  352. X/* Lharc1.02    /usr/bin/lharc a    -a    -      .lzh              */
  353. X/*                                       */
  354. X/* ACHTUNG: Zwischen Kommentar und Liste EINE Leerzeile einfuegen !       */
  355. X/***************************************************************************/
  356. X
  357. XCompress4.3    /usr/bin/compress    ?    +    .Z
  358. XLharc1.02    /usr/bin/lharc        a    -    .lzh
  359. XZoo2.1        /usr/bin/zoo        -add    -    .zoo
  360. XFreeze1.1    /usr/bin/freeze        ?    +    .F
  361. X
  362. X
  363. END_OF_FILE
  364.   if test 798 -ne `wc -c <'etc/mbox.packers'`; then
  365.     echo shar: \"'etc/mbox.packers'\" unpacked with wrong size!
  366.   fi
  367.   # end of 'etc/mbox.packers'
  368. fi
  369. if test -f 'etc/rmail.sh' -a "${1}" != "-c" ; then 
  370.   echo shar: Will not clobber existing file \"'etc/rmail.sh'\"
  371. else
  372.   echo shar: Extracting \"'etc/rmail.sh'\" \(993 characters\)
  373.   sed "s/^X//" >'etc/rmail.sh' <<'END_OF_FILE'
  374. X#---------------------------------------------------------------------------
  375. X#
  376. X#                       ix/MBox  R M A I L . S H
  377. X#          Mailbox-Programm fuer UNIX(-Derivate)
  378. X#            
  379. X#               Volker Schuermann
  380. X#              Wuppertal, FRG, 08.12.1991
  381. X#
  382. X#---------------------------------------------------------------------------
  383. X# Dieses Script uebergibt eine "persoenliche Mail" und eine Empfaenger-
  384. X# Adresse an das Programm RMAIL. Die "persoenliche Mail" enthaelt bereits
  385. X# einen (fast) kompletten Header !
  386. X#
  387. X# Bei Verwendung von SMAIL sollte "config.mbox" speziell fuer die Unter-
  388. X# drueckung der SMAIL-Message-ID etc. konfiguriert werden.
  389. X#---------------------------------------------------------------------------
  390. X# Parameter:
  391. X#
  392. X# $1  ->  Name der Datei ("persoenliche Mail" s.o.)
  393. X# $2  ->  Empfaenger der Mail
  394. X# 
  395. X# Beispiel:
  396. X#
  397. X# rmail -d -i $1 $2
  398. X#
  399. X# Oder:
  400. X# 
  401. X# smail -i -C /usr/local/lib/smail/config.mbox $2 < $1
  402. X#
  403. X# config.mbox ->
  404. X# -recieved_field
  405. X# copy_error_postmaster   
  406. X
  407. Xrmail -d -i $1 $2
  408. END_OF_FILE
  409.   if test 993 -ne `wc -c <'etc/rmail.sh'`; then
  410.     echo shar: \"'etc/rmail.sh'\" unpacked with wrong size!
  411.   fi
  412.   # end of 'etc/rmail.sh'
  413. fi
  414. if test -f 'etc/sysinfo.U' -a "${1}" != "-c" ; then 
  415.   echo shar: Will not clobber existing file \"'etc/sysinfo.U'\"
  416. else
  417.   echo shar: Extracting \"'etc/sysinfo.U'\" \(2646 characters\)
  418.   sed "s/^X//" >'etc/sysinfo.U' <<'END_OF_FILE'
  419. Xbegin 644 etc/sysinfo
  420. XM0V]N=&5N="U4>7!E.B!T97AT+W)I8VAT97AT.R *1&EE<V4@36%I;&)O>"!L
  421. XMA'5F="!A=68@96EN96T@,C @34AZ(#,X-F5R(&E.5$5,+5)E8VAN97(@;6ET
  422. XM(&-A+B R-# @34(\;FP^"E!L871T96YK87!A>FETA'0@=6YD(#@@34(@2&%U
  423. XM<'1S<&5I8VAE<BX\;FP^"CQN;#X*16EN9V5S971Z="!W:7)D(&1A<R!"971R
  424. XM:65B<W-Y<W1E;2!-24Y)6"!I;B!D97(@,S@V97(@5F5R<VEO;BX@1&%S($UA
  425. XM:6PM/&YL/@IB;WAP<F]G<F%M;2!I<W0@:7@O34)O>"P@96EN92!0<F]D=6MT
  426. XM(&%U<R!D97(@4'5B;&EC($1O;6%I;BX\;FP^"CQN;#X*17,@=V5R9&5N('IW
  427. XM96D@36]D96TM4&]R=',@86YG96)O=&5N.CQN;#X*/&YL/@I0;W)T,3H@55-2
  428. XM;V)O=&EC<R!#;W5R:65R($A35" S,# M,3DN,FL@(" @,#(P,B @-#8R,3$T
  429. XM/&YL/@I0;W)T,CH@1&EC;W9E<GD@,C0P,$,@(" @(" @(" S,# M,C0P," @
  430. XM(" @,#(P,B @-#8V,#(S-#QN;#X*/&YL/@H\0V5N=&5R/CQ";VQD/BTM+2TM
  431. XM+2TM+2TM+2TM+2TM+2TM+2TM+2TM/"]";VQD/CPO0V5N=&5R/CQN;#X*/&YL
  432. XM/@I/8G=O:&P@9&EE<V4@36%I;&)O>"!N:6-H="!K;VUM97)Z:65L;"!B971R
  433. XM:65B96X@=VER9"P@<VEN9"!E:6YI9V4@9&5R/&YL/@IA;F=E8F]T96YE;B!$
  434. XM:65N<W1E(&=E8H%H<F5N<&9L:6-H=&EG+CQN;#X*/&YL/@H)/$)O;&0^1T5"
  435. XMFDA214Y&4D5)/"]";VQD/B!I<W0Z/&YL/@H\;FP^"@EO("!D:64@0F5N=71Z
  436. XM='5N9R!D97(@36%I;&)O>#QN;#X*"6\@(&1A<R!P<FEV871E(%!O<W1F86-H
  437. XM/&YL/@H);R @9&EE($YU='IU;F<@9&5R('9E<G-C:&EE;F1E;B!01"U!<F-H
  438. XM:79E/&YL/B *"6\@(&1I92!P<FEV871E(%!O<W0@86X@5&5I;&YE:&UE<B!I
  439. XM;FYE<FAA;&(@9&5S(%-50FYE=#QN;#X*"6\@(&1I92!496EL;F%H;64@86X@
  440. XM9&5N($Y%5U,M1W)U<'!E;B B9&4N*B(\;FP^"CQN;#X*"3Q";VQD/D=%0II(
  441. XM4D5.4$9,24-(5$E'/"]";VQD/B!I<W0Z/&YL/@H\;FP^"@EO("!D97(@/$)O
  442. XM;&0^3U541$E!3#PO0F]L9#XM4V5R=FEC92 M(%9E<F)I;F1U;F<@>G4@36%I
  443. XM;&)O>&5N/&YL/@H)(" @=6YD($1A=&5N8F%N:V5N(&EM($EN+2!U;F0@075S
  444. XM;&%N9#QN;#X*"6\@(&1I92!P<FEV871E(%!O<W0@86X@5&5I;&YE:&UE<B!A
  445. XM=7-S97)H86QB(&1E<R!354)N970\;FP^"@EO("!D:64@5&5I;&YA:&UE(&%N
  446. XM(&1E;B!I;G1E<FYA=&EO;F%L96X@3D574RU'<G5P<&5N/&YL/B @( H\;FP^
  447. XM(" @( I'96YA=65R92!);F9O<FUA=&EO;F5N('5N9"!A:W1U96QL92".;F1E
  448. XM<G5N9V5N('=E<F1E;B!R96=E;&V$<W-I9R!I;3QN;#X*0G)E='0@)VQO8V%L
  449. XM+G1A;&LG(&)E:V%N;G1G96=E8F5N+CQN;#X*/&YL/@H\0V5N=&5R/CQ";VQD
  450. XM/BTM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM/"]";VQD/CPO0V5N=&5R/CQN
  451. XM;#X*/&YL/@I$:64@1V5B@6AR96X@9G5E<B!D96X@:6YT97)N871I;VYA;&5N
  452. XM($U!24PM('5N9"!.15=3+5IU9W)I9F8@8F5T<F%G96X\;FP^"G!R;R!1=6%R
  453. XM=&%L+U5S97(@,3DN-3 @1$TN(%-I92!S:6YD(&%U9B!U;G1E;G-T96AE;F1E
  454. XM<R!+;VYT;R!Z=2"!8F5R+3QN;#X*=V5I<V5N+CQN;#X*/&YL/@H)5F]L:V5R
  455. XM(%-C:(%R;6%N;CQN;#X*"4MT;RX@-#$S,3,V,SQN;#X*"4)L>BX@,S,P(#4P
  456. XM," P," O(%-T861T<W!A<FMA<W-E(%=U<'!E<G1A;#QN;#X*"3Q";VQD/E-4
  457. XM24-(5T]25#PO0F]L9#X@(D%C8W0N(%5S97)N86UE(CQN;#X@(" @(" @"CQN
  458. XM;#X*0FET=&4@9&%S(#Q";VQD/E-424-(5T]25#PO0F]L9#X@=6YB961I;F=T
  459. XM(&%N9V5B96XL(&1A(&1I92!"=6-H=6YG('-O;G-T(&5V=&PN(&%L<SQN;#X*
  460. XM4W!E;F1E(&=E=V5R=&5T('=I<F0A/&YL/@H\;FP^"CQ#96YT97(^/$)O;&0^
  461. XM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2T\+T)O;&0^/"]#96YT97(^/&YL
  462. X(/@H\;FP^"@HM
  463. Xend
  464. END_OF_FILE
  465.   if test 2646 -ne `wc -c <'etc/sysinfo.U'`; then
  466.     echo shar: \"'etc/sysinfo.U'\" unpacked with wrong size!
  467.   else
  468.     echo shar: Uudecoding \"'etc/sysinfo'\" \(1898 characters\)
  469.     cat etc/sysinfo.U | uudecode
  470.     if test 1898 -ne `wc -c <'etc/sysinfo'`; then
  471.       echo shar: \"'etc/sysinfo'\" uudecoded with wrong size!
  472.     else
  473.       rm etc/sysinfo.U
  474.     fi
  475.   fi
  476.   # end of 'etc/sysinfo.U'
  477. fi
  478. if test -f 'etc/xmd.alias' -a "${1}" != "-c" ; then 
  479.   echo shar: Will not clobber existing file \"'etc/xmd.alias'\"
  480. else
  481.   echo shar: Extracting \"'etc/xmd.alias'\" \(1057 characters\)
  482.   sed "s/^X//" >'etc/xmd.alias' <<'END_OF_FILE'
  483. X#---------------------------------------------------------------------------
  484. X#
  485. X#                       ix/MBox  X M D . A L I A S
  486. X#          Mailbox-Programm fuer UNIX(-Derivate)
  487. X#            
  488. X#               Volker Schuermann
  489. X#              Wuppertal, FRG, 15.02.1992
  490. X#
  491. X#---------------------------------------------------------------------------
  492. X# In dieser Datei werden Empfaenger-Adressen und deren Alias gespeichert.
  493. X#
  494. X# Das Format der Eintraege ist folgendes:
  495. X#
  496. X# To: (1) Adresse, die per RMAIL uebertragen wurde
  497. X# To: (2) Adresse, die innerhalb der ix/MBox verwendet werden soll
  498. X# <LEERZEILE>
  499. X# To: (1) etc.
  500. X# To: (2) etc.
  501. X# <LEERZEILE>
  502. X#
  503. X#---------------------------------------------------------------------------
  504. X# Parameter: -keine-
  505. X
  506. XTo: Multiple recipients of <TEX-D-L@dearn.bitnet>
  507. XTo: Christian.Boehm@unnet.w.open.DE
  508. X
  509. XTo: Multiple recipients of <TEX-D-L@DEARN.uucp>
  510. XTo: Christian.Boehm@unnet.w.open.DE
  511. X
  512. XTo: Postmaster@unnet.w.open.DE
  513. XTo: Volker.Schuermann@unnet.w.open.DE
  514. X
  515. XTo: Multiple recipients of list <386bsd-list@compuram.bbt.se>
  516. XTo: Christian.Boehm@unnet.w.open.DE
  517. X
  518. X
  519. END_OF_FILE
  520.   if test 1057 -ne `wc -c <'etc/xmd.alias'`; then
  521.     echo shar: \"'etc/xmd.alias'\" unpacked with wrong size!
  522.   fi
  523.   # end of 'etc/xmd.alias'
  524. fi
  525. if test -f 'rz.cdiff' -a "${1}" != "-c" ; then 
  526.   echo shar: Will not clobber existing file \"'rz.cdiff'\"
  527. else
  528.   echo shar: Extracting \"'rz.cdiff'\" \(1562 characters\)
  529.   sed "s/^X//" >'rz.cdiff' <<'END_OF_FILE'
  530. X*** rz.c~    Sat Aug 10 13:39:34 1991
  531. X--- rz.c    Sat Aug 10 13:13:54 1991
  532. X***************
  533. X*** 1,6 ****
  534. X--- 1,8 ----
  535. X  #define VERSION "2.03 05-17-88"
  536. X  #define PUBDIR "/usr/spool/uucppublic"
  537. X  
  538. X+ /* Unnet == Modified for ix/MBox-Use !!! */
  539. X+ 
  540. X  /*% cc -compat -M2 -Ox -K -i -DMD -DOMEN % -o rz; size rz;
  541. X  <-xtx-*> cc386 -Ox -DMD -DOMEN -DSEGMENTS=8 rz.c -o $B/rz;  size $B/rz
  542. X   *
  543. X***************
  544. X*** 390,395 ****
  545. X--- 392,399 ----
  546. X  {
  547. X      register c;
  548. X  
  549. X+     strcpy(Pathname, *argp); checkpath(Pathname);  /* Unnet */
  550. X+ 
  551. X      if (Batch || argc==0) {
  552. X          Crcflg=1;
  553. X          if ( !Quiet)
  554. X***************
  555. X*** 432,439 ****
  556. X          pclose(fout);  return ERROR;
  557. X      }
  558. X  #endif
  559. X!     if (fout)
  560. X!         fclose(fout);
  561. X  #ifndef vax11c
  562. X      if (Restricted) {
  563. X          unlink(Pathname);
  564. X--- 436,445 ----
  565. X          pclose(fout);  return ERROR;
  566. X      }
  567. X  #endif
  568. X!     if (fout){
  569. X!         fflush(fout); /* Unnet */
  570. X!         fclose(fout);
  571. X!     }
  572. X  #ifndef vax11c
  573. X      if (Restricted) {
  574. X          unlink(Pathname);
  575. X***************
  576. X*** 915,922 ****
  577. X  register n;
  578. X  {
  579. X      register char *p;
  580. X!     if (n == 0)
  581. X!         return OK;
  582. X  
  583. X      if (Thisbinary) {
  584. X          for (p=buf; --n>=0; )     
  585. X--- 921,931 ----
  586. X  register n;
  587. X  {
  588. X      register char *p;
  589. X!                                                       
  590. X!     if (n == 0)
  591. X!         return OK;
  592. X!        
  593. X!     if (fout == 0) fout = fopen( Pathname, "a" );     /* Unnet */
  594. X  
  595. X      if (Thisbinary) {
  596. X          for (p=buf; --n>=0; )     
  597. X***************
  598. X*** 1436,1441 ****
  599. X--- 1445,1451 ----
  600. X          return OK;
  601. X      }
  602. X  #endif
  603. X+     fflush(fout);  /* Unnet */
  604. X      if (fclose(fout)==ERROR) {
  605. X          fprintf(stderr, "file close ERROR\n");
  606. X          return ERROR;
  607. END_OF_FILE
  608.   if test 1562 -ne `wc -c <'rz.cdiff'`; then
  609.     echo shar: \"'rz.cdiff'\" unpacked with wrong size!
  610.   fi
  611.   # end of 'rz.cdiff'
  612. fi
  613. if test -f 'src/CROSSREF' -a "${1}" != "-c" ; then 
  614.   echo shar: Will not clobber existing file \"'src/CROSSREF'\"
  615. else
  616.   echo shar: Extracting \"'src/CROSSREF'\" \(2465 characters\)
  617.   sed "s/^X//" >'src/CROSSREF' <<'END_OF_FILE'
  618. X/***************************************************************************/
  619. X/*        PROGRAMM  ix/Mbox                           */
  620. X/*             DATEI  CROSSREF                           */
  621. X/*        FUNKTIONEN  Cross-Referenz-Liste der Funktionen           */
  622. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  623. X/*  LETZTE AENDERUNG  28.05.1992                       */
  624. X/***************************************************************************/
  625. X
  626. Xadmin()                admin.c
  627. Xansage()            lesen.c
  628. Xansi()                 tools.c
  629. Xanzeigen()            lesen2.c
  630. Xbaudrate()            baudrate.c
  631. Xbef()                befehl.c
  632. Xbrett()                misc2.c
  633. Xbrief()                mail.c
  634. Xbigcopy()            tools.c
  635. Xcarboncopy()            weiterl.c
  636. Xcheckdomaintype()        lesen.c
  637. Xchk_newsgrp()            misc2.c
  638. Xclearline()            tools.c
  639. Xcontrol()            control.c
  640. Xcrypted()            tools.c
  641. Xctrlx()                ctrlx.c
  642. Xcut_arg()            loop.c
  643. Xcut_bef()            loop.c
  644. Xdateconv()            tools.c
  645. Xdatereconv()            tools.c
  646. Xdownload()            pd.c
  647. Xedit()                suchen.c
  648. Xfaces()                faces.c
  649. Xfetch_receipy()            misc2.c
  650. Xfinger()            portinfo.c
  651. Xfixoutput()            main.c
  652. Xgames()                games.c
  653. Xgetch()                getch.c
  654. Xgetint()            getline.c
  655. Xgetline()            getline.c
  656. Xgetsite()            lesen.c
  657. Xheadline()            tools.c
  658. Xhelp()                help.c
  659. Xinhalt2()            lesen2.c
  660. Xinit()                main.c
  661. Xinit_user()            intro.c
  662. Xintro()                intro.c
  663. Xisin()                tools.c
  664. Xiso_convert()            show.c
  665. Xiso_line()            show.c
  666. Xlength()            tools.c
  667. Xlesen()                lesen.c
  668. Xlesen2()            lesen2.c
  669. Xloeschen()            misc2.c
  670. Xloeschen2()            lesen2.c
  671. Xlogout()            main.c
  672. Xloop()                loop.c
  673. Xmain()                main.c
  674. Xmaybe_locked()            tools.c
  675. Xmblock()            tools.c
  676. Xmbunlock()            tools.c
  677. Xmore()                more.c
  678. Xmkix()                pd.c
  679. Xmydate()            tools.c
  680. Xmytime()            tools.c
  681. Xnerror()            nerror.c & derror.c
  682. Xnoctrlx()            ctrlx.c
  683. Xnum_stripped()            tools.c
  684. Xoutdial()            outdial.c
  685. Xpd()                pd.c
  686. Xperms()                tools.c
  687. Xport()                portinfo.c
  688. Xpostfach()            postfach.c
  689. Xprf()                misc.c
  690. Xpruefe()            misc.c
  691. Xquoted_printable()        show.c
  692. Xrates()                loop.c
  693. Xrename()            tools.c
  694. Xrichtext()            show.c
  695. Xscanner()            misc.c
  696. Xschreiben()            misc.c
  697. Xsetup()                  admin.c
  698. Xsetup_get()            admin.c
  699. Xshortname()            tools.c
  700. Xshow()                show.c
  701. Xshow_level()            portinfo.c
  702. Xsigcatch()            loop.c
  703. Xstatus()            pd.c
  704. Xstatistik()            pd.c
  705. Xstrcomp()            tools.c
  706. Xstrcopy()            tools.c
  707. Xstripped()            tools.c
  708. Xsubb()                misc2.c
  709. Xsuchen()            suchen.c
  710. Xtimeconv()            tools.c
  711. Xtimereconv()            tools.c
  712. Xtty()                 tools.c
  713. Xttyna()                tools.c
  714. Xunterschrift()            lesen.c
  715. Xupcased()            tools.c
  716. Xuser_aendern()            admin.c
  717. Xuser_anzeigen()            admin.c
  718. Xuser_loeschen()            admin.c
  719. Xuserliste()            portinfo.c
  720. Xwait_until_keypressed()        admin.c
  721. Xweiterleiten()            weiterl.c
  722. Xwhoami()            tools.c
  723. Xwhodo()                control.c
  724. Xyesno()                getline.c
  725. END_OF_FILE
  726.   if test 2465 -ne `wc -c <'src/CROSSREF'`; then
  727.     echo shar: \"'src/CROSSREF'\" unpacked with wrong size!
  728.   fi
  729.   # end of 'src/CROSSREF'
  730. fi
  731. if test -f 'src/HISTORY' -a "${1}" != "-c" ; then 
  732.   echo shar: Will not clobber existing file \"'src/HISTORY'\"
  733. else
  734.   echo shar: Extracting \"'src/HISTORY'\" \(2280 characters\)
  735.   sed "s/^X//" >'src/HISTORY' <<'END_OF_FILE'
  736. X/***************************************************************************/
  737. X/*        PROGRAMM  ix/Mbox                           */
  738. X/*             DATEI  HISTORY                           */
  739. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  740. X/*  LETZTE AENDERUNG  09.09.1993                       */
  741. X/***************************************************************************/
  742. X
  743. X20.04.1991  ->  Erste Versuche einen NEWS-Reader im Stil der alten "PC-Boxen"
  744. X        zu basteln (sind positiv verlaufen)
  745. X
  746. X21.04.1991  ->  Schreiben an NGs via PNEWS                 
  747. X
  748. X22.04.1991  ->  REPLY via PNEWS
  749. X
  750. X23.04.1991  ->  SH-unabhaengiges Accounting
  751. X
  752. X26.04.1991  ->  Persoenliche Mail lesen, schreiben, beantworten
  753. X
  754. X11.05.1991  ->  Inhalt/Datum, Status
  755. X
  756. X01.06.1991  ->  Vorbereitung fuer die Portierung
  757. X
  758. X02.06.1991  ->  Erste BETA-Test Version an die Portierer/Tester verschickt
  759. X
  760. X18.06.1991  ->  Makro-Befehle implementiert
  761. X
  762. X15.08.1991  ->  SVR3 einigermassen angepasst, LOCK-Mechanismus eingebaut,
  763. X        NNPOST und RMAIL ermoeglicht, versuchweise _SYS_ACCOUNT
  764. X        integriert
  765. X
  766. X21.09.1991  ->  Scanner-Datum beim LOGOUT aktuallisieren, nicht mehr bei
  767. X        init_user()
  768. X
  769. X21.10.1991  ->  Option fuer Online-Spiele implementiert
  770. X
  771. X26.10.1991  ->  Endlich ein "anstaendiges" Makefile:-)
  772. X
  773. X12.11.1991  ->  Die Anspassung an SVR3 laeuft auf Hochtouren
  774. X
  775. X16.11.1991  ->  Referenzversion 1.6.0 ueber "sub.os.minix" gepostet
  776. X
  777. X17.11.1991  ->  Patchlevel PL1 fertiggestellt
  778. X           
  779. X27.11.1991  ->  Patchlevel PL3 mit schnellerem MB-DAEMON ausgeliefert
  780. X
  781. X06.12.1991  ->  Umgestellt auf RMAIL & INEWS (Header mit Refs. etc.)
  782. X
  783. X28.12.1991  ->  Internationale Version (DEFINES, README, etc.) ausgeliefert
  784. X
  785. X04.01.1992  ->  MAIL- & NEWS-Header editierbar (Followup etc.)
  786. X
  787. X20.02.1992  ->  Eigener DOWNLOAD-Befehl. MB-DAEMON erstellt LIB online (opt.)
  788. X
  789. X09.05.1992  ->  RTF (Richtext Format) implementiert
  790. X
  791. X24.05.1992  ->  Strict-Accounting eingebaut / SVR4-Port funxt (!) / 1.6 PL9f
  792. X
  793. X06.06.1992  ->  Version 1.6 PL10 ausgeliefert
  794. X
  795. X04.07.1992  ->  Version 1.6 PL10e ausgeliefert
  796. X
  797. X10.08.1992  ->  Version 1.6 PL10a ist ueber FTP verfuegbar: <nic.funet.fi>
  798. X
  799. X10.11.1992  ->  Umlautkonvertierung eingebaut (Patchlevel 1.6 PL10j2)
  800. X
  801. X09.01.1993  ->  RTF-Editor WENDY, NEWUSER-Mail an Root (Version 1.6 PL10j7)
  802. X
  803. X17.01.1993  ->  Version 1.6 PL10j7 an "comp.sources.misc" ausgeliefert
  804. X
  805. END_OF_FILE
  806.   if test 2280 -ne `wc -c <'src/HISTORY'`; then
  807.     echo shar: \"'src/HISTORY'\" unpacked with wrong size!
  808.   fi
  809.   # end of 'src/HISTORY'
  810. fi
  811. if test -f 'src/baudrate.c' -a "${1}" != "-c" ; then 
  812.   echo shar: Will not clobber existing file \"'src/baudrate.c'\"
  813. else
  814.   echo shar: Extracting \"'src/baudrate.c'\" \(1758 characters\)
  815.   sed "s/^X//" >'src/baudrate.c' <<'END_OF_FILE'
  816. X/***************************************************************************/
  817. X/*        PROGRAMM  ix/Mbox                           */
  818. X/*             DATEI  baudrate.c                       */
  819. X/*        FUNKTIONEN  baudrate()                       */
  820. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  821. X/*  LETZTE AENDERUNG  16.03.1992                       */
  822. X/***************************************************************************/
  823. X
  824. X#include <stdio.h>
  825. X#include <time.h>
  826. X
  827. X#include "mbox.h"
  828. X
  829. X
  830. X#ifdef _SYS7    /* UNIX System 7  (MINIX, COHERENT, ...) */
  831. X
  832. X#include  <sgtty.h>
  833. Xstatic struct sgttyb told;
  834. X
  835. X#else        /* UNIX System V  (UNIX, XENIX, ESIX, ...) */
  836. X
  837. X#ifdef _LINUX
  838. X#include  <termio.h>
  839. X#else
  840. X#include  <sys/termio.h> 
  841. X#endif
  842. Xstatic struct termio told;
  843. X
  844. X#endif
  845. X
  846. X
  847. X#define BYTE    0377    /* Don't ask me, ask Andy !! */
  848. X
  849. X
  850. Xint baudrate( try )
  851. Xint try;
  852. X{
  853. X  int i, j = 0;
  854. X  int guess = -1;
  855. X  long ts, tn;
  856. X
  857. X
  858. X  if(BAUDRATE != 0) return BAUDRATE;
  859. X
  860. X#ifdef _SYS7
  861. X  
  862. X  ioctl( 0, TIOCGETP, &told );
  863. X  guess = (int) (100 * (told.sg_ospeed & BYTE));
  864. X
  865. X#else
  866. X
  867. X  ioctl( 0, TCGETA, &told );
  868. X
  869. X  if(told.c_cflag &=    B300) guess = (int)   300;
  870. X  if(told.c_cflag &=   B1200) guess = (int)  1200;
  871. X  if(told.c_cflag &=   B2400) guess = (int)  2400;
  872. X  if(told.c_cflag &=   B4800) guess = (int)  4800;
  873. X  if(told.c_cflag &=   B9600) guess = (int)  9600;
  874. X  /*
  875. X  if(told.c_cflag &=  B14400) guess = (int) 14400;
  876. X  */
  877. X  if(told.c_cflag &=  B19200) guess = (int) 19200;
  878. X  if(told.c_cflag &=  B38400) guess = (int) 38400;
  879. X
  880. X#endif
  881. X
  882. X#ifdef _BAUDRATE      /* HST mit 'fixed baudrate 19.2k' */
  883. X    
  884. X  if((guess == MAX_BPS) || (guess == 0)){
  885. X
  886. X    guess = 300;
  887. X
  888. X    if(try >   300) guess =  1200;
  889. X    if(try >  1200) guess =  2400;
  890. X    if(try >  2400) guess =  9600;
  891. X    if(try >  9600) guess = 14400;
  892. X    if(try > 14400) guess = 19200;
  893. X  }
  894. X
  895. X#endif
  896. X
  897. X  return guess;
  898. X
  899. X}
  900. END_OF_FILE
  901.   if test 1758 -ne `wc -c <'src/baudrate.c'`; then
  902.     echo shar: \"'src/baudrate.c'\" unpacked with wrong size!
  903.   fi
  904.   # end of 'src/baudrate.c'
  905. fi
  906. if test -f 'src/befehl.c' -a "${1}" != "-c" ; then 
  907.   echo shar: Will not clobber existing file \"'src/befehl.c'\"
  908. else
  909.   echo shar: Extracting \"'src/befehl.c'\" \(2087 characters\)
  910.   sed "s/^X//" >'src/befehl.c' <<'END_OF_FILE'
  911. X/***************************************************************************/
  912. X/*        PROGRAMM  ix/Mbox                           */
  913. X/*             DATEI  befehl.c                           */
  914. X/*        FUNKTIONEN  bef()                           */
  915. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  916. X/*  LETZTE AENDERUNG  06.06.1992                       */
  917. X/***************************************************************************/
  918. X
  919. X#include <stdio.h>
  920. X
  921. X#include "mbox.h"
  922. X
  923. X
  924. X/***************************************************************************/
  925. X/*      FUNKTION  bef()                               */
  926. X/*  BESCHREIBUNG  Sucht entweder die Befehlsnummer zu einem bekannten      */
  927. X/*          Befehl, oder zeigt die Befehle als Uebersicht an.        */
  928. X/*          Dabei wird das Userlevel beruecksichtigt.                */
  929. X/*     PARAMETER  befehl  =  Befehl  =  Befehl, der gesucht werden soll    */
  930. X/*                 '?'     =  Befehle anzeigen (levelabhaengig)  */
  931. X/*          arg     =  '*'     =  ALLE Befehle anzeigen                */
  932. X/*     RUECKGABE  -1  =  Userlevel reicht nicht aus               */
  933. X/*               -9  =  Befehl nicht gefunden                   */
  934. X/*           n  =  Befehlsnummer (siehe Datei BEFEHLE und loop.c)       */
  935. X/***************************************************************************/
  936. X
  937. Xint bef(befehl, arg)
  938. Xunsigned char befehl[];
  939. Xunsigned char arg[];
  940. X{
  941. X  unsigned char s[STRING];
  942. X  int b = 0, i = 0, l;
  943. X
  944. X  l = USER.level;
  945. X
  946. X  if (befehl[0] == '?') {
  947. X
  948. X    if (arg[0] == '*') l = 9999;
  949. X
  950. X    while (BEF[b].id != -1) {
  951. X        if ((BEF[b].prototyp == 1) && (BEF[b].in <= l)) {
  952. X            printf("%-14.14s ", BEF[b].befehl);
  953. X            i++;
  954. X            if (i == 5) {
  955. X                printf("\n");
  956. X                i = 0;
  957. X            }
  958. X        }
  959. X        b++;
  960. X    }
  961. X    printf("\n\n");
  962. X    return 0;
  963. X  }
  964. X  else {
  965. X    while (BEF[b].id != -1) {
  966. X        if (strcomp(befehl, BEF[b].befehl) == 0) {
  967. X            if (BEF[b].in <= USER.level){
  968. X                if(BEF[b].id == 1000){
  969. X                    printf("\n\n");
  970. X                    if(arg[0] == '\0')
  971. X                        sprintf(s, "exec %s %s %d %d", RSH, BEF[b].pfad, OLDUID, OLDGID);
  972. X                    else
  973. X                        sprintf(s, "exec %s %s \"%s\" %d %d", RSH, BEF[b].pfad, arg, OLDUID, OLDGID);            
  974. X                    system(s);
  975. X                }
  976. X                return BEF[b].id;
  977. X            }
  978. X            else{
  979. X                return -1;
  980. X            }
  981. X        }
  982. X        b++;
  983. X    }
  984. X    return -9;
  985. X  }
  986. X}
  987. END_OF_FILE
  988.   if test 2087 -ne `wc -c <'src/befehl.c'`; then
  989.     echo shar: \"'src/befehl.c'\" unpacked with wrong size!
  990.   fi
  991.   # end of 'src/befehl.c'
  992. fi
  993. if test -f 'src/bled.doc' -a "${1}" != "-c" ; then 
  994.   echo shar: Will not clobber existing file \"'src/bled.doc'\"
  995. else
  996.   echo shar: Extracting \"'src/bled.doc'\" \(1399 characters\)
  997.   sed "s/^X//" >'src/bled.doc' <<'END_OF_FILE'
  998. X(B)LED ist ein zeilenorientierer Editor (Text-Erfassungssystem), der Texte
  999. Xbeliebiger Groesse verarbeiten kann.
  1000. X
  1001. XEr verwendet verschiedene Eingabemodi, die jeweils am Prefix vor der
  1002. XZeilennummer zu identifizieren sind:
  1003. X
  1004. XL0000 Text-Zeile ...                  # Lese-Modus (".l" und ".L")
  1005. XA0000 Text-Zeile ...                  # Anhaenge-Modus (".a")
  1006. XI0000 Text-Zeile ...                  # Einfuge-Modus (".i")
  1007. XK0000 Text-Zeile ...                  # Korrektur-Modus (".k");
  1008. X
  1009. XWird ein neuer Text erfasst, ist der Anhaenge-Modus aktiv. Mit dem
  1010. XBefehl ".l" (bzw. ".L") kann man sich den bereits eingegeben Text
  1011. Xanzeigen lassen.
  1012. X
  1013. XMuss eine Zeile korrigiert werden, wird mit dem Befehl ".k ZEILE" die
  1014. Xentsprechende Zeile (ZEILE) nochmals angezeigt und kann ueberarbeitet
  1015. Xwerden.
  1016. X
  1017. XSoll zwischen den bereits erfassten Zeilen neuer Text eingegeben werden,
  1018. Xmuss mit ".i ZEILE" in den Einfuege-Modus gewechselt werden. Von nun 
  1019. Xan werden die Eingaben zwischen "ZEILE -1" und "ZEILE" eingefuegt. Die
  1020. XNummerierung der auf "ZEILE" folgenden Zeilen wird automatisch angepasst.
  1021. XDer Einfuege-Modus wird mit ".a" beendet. Danach ist der Anhaenge-Modus
  1022. Xaktiv, und alle Eingaben werden ans Ende des Textes angehaengt.
  1023. X
  1024. XSollen Zeilen komplett entfernt werden, kommt der Befehl ".d" zum Einsatz.
  1025. XWerden keine Zeilennummern angegeben, wird der gesamte Text geloescht !!!
  1026. X
  1027. XBeendet und gesichert wird die Eingabe mit "." !
  1028. END_OF_FILE
  1029.   if test 1399 -ne `wc -c <'src/bled.doc'`; then
  1030.     echo shar: \"'src/bled.doc'\" unpacked with wrong size!
  1031.   fi
  1032.   # end of 'src/bled.doc'
  1033. fi
  1034. if test -f 'src/derror.c' -a "${1}" != "-c" ; then 
  1035.   echo shar: Will not clobber existing file \"'src/derror.c'\"
  1036. else
  1037.   echo shar: Extracting \"'src/derror.c'\" \(1767 characters\)
  1038.   sed "s/^X//" >'src/derror.c' <<'END_OF_FILE'
  1039. X/***************************************************************************/
  1040. X/*        PROGRAMM  ix/Mbox                           */
  1041. X/*             DATEI  dummy_nerror.c                       */
  1042. X/*        FUNKTIONEN  nerror                           */
  1043. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  1044. X/*  LETZTE AENDERUNG  16.11.1991                       */
  1045. X/***************************************************************************/
  1046. X
  1047. X#include <stdio.h>
  1048. X
  1049. X#include "defs.h"
  1050. X#include "mbox.msg"
  1051. X
  1052. X/***************************************************************************/
  1053. X/*      FUNKTION  nerror()                           */
  1054. X/*  BESCHREIBUNG  Zeigt Systemfehler (Dateien koennen nicht gefunden o.    */
  1055. X/*          geoeffnet werden, etc.) an. Anschliessend wie die        */
  1056. X/*          Befehlseingabe aufgerufen.                               */
  1057. X/*                                                               */
  1058. X/*          ACHTUNG: Nach "nerror()" laeuft die MBox zwar weiter,    */
  1059. X/*          aber beim Terminieren wird ein "core" ausgegeben.        */
  1060. X/*     PARAMETER  file     = Datei in der der Fehler aufgetreten ist       */
  1061. X/*          line     = Zeile in der Datei                            */
  1062. X/*          function = Funktion in der Datei                         */
  1063. X/*          descr    = Fehlerbeschreibung                               */
  1064. X/*          er       = Datei/Variable                                */
  1065. X/*     RUECKGABE  keine                            */
  1066. X/***************************************************************************/
  1067. X
  1068. Xvoid nerror(file, line, function, descr, er)
  1069. Xunsigned char file[];
  1070. Xint line;
  1071. Xunsigned char function[], descr[], er[];
  1072. X{
  1073. X  unsigned char s[80];
  1074. X
  1075. X  printf("%c%s %s (%s) - %s \"%s\"\n", CR, DER01_MSG, function, file, descr, er);
  1076. X
  1077. X  sprintf(s, "[%s] %s, %d\n***** %s, %s, %s ... %s !!!",
  1078. X    DER02_MSG, file, line, function, descr, er, DER03_MSG);
  1079. X  
  1080. X}
  1081. X
  1082. X
  1083. END_OF_FILE
  1084.   if test 1767 -ne `wc -c <'src/derror.c'`; then
  1085.     echo shar: \"'src/derror.c'\" unpacked with wrong size!
  1086.   fi
  1087.   # end of 'src/derror.c'
  1088. fi
  1089. if test -f 'src/dis.c' -a "${1}" != "-c" ; then 
  1090.   echo shar: Will not clobber existing file \"'src/dis.c'\"
  1091. else
  1092.   echo shar: Extracting \"'src/dis.c'\" \(1370 characters\)
  1093.   sed "s/^X//" >'src/dis.c' <<'END_OF_FILE'
  1094. X/***************************************************************************/
  1095. X/*          PROGRAMM  ix/Mbox                                              */
  1096. X/*             DATEI  dis.c                                                */
  1097. X/*        FUNKTIONEN  dis()                                                */
  1098. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)                 */
  1099. X/*  LETZTE AENDERUNG  16.11.1992                                           */
  1100. X/***************************************************************************/
  1101. X
  1102. X#include <stdio.h>
  1103. X
  1104. X#include "mbox.h"
  1105. X
  1106. Xvoid dis( argument )
  1107. Xunsigned char argument[];
  1108. X{
  1109. X  unsigned char s[STRING];
  1110. X
  1111. X  if(argument[0] == '*'){
  1112. X    headline( DIS01_MSG );
  1113. X    printf("%s\n", DIS02_MSG);
  1114. X    printf("===============================================================================\n");
  1115. X
  1116. X    sprintf(s, "%s/usr/%d/.dis", HOME, USER.id);
  1117. X    if (show(s, 9999, USER.more + 100) == -1) {
  1118. X            ansi( "md" );
  1119. X            printf("%s.\n", DIS03_MSG);
  1120. X            ansi( "me" );
  1121. X            printf("%s\n", DIS04_MSG);
  1122. X    }
  1123. X  }
  1124. X  else{
  1125. X    DISKUSSION = 1;
  1126. X
  1127. X    printf("\n\n");
  1128. X    ansi( "md" );
  1129. X    printf("%s: ", DIS05_MSG);
  1130. X    ansi( "me" );
  1131. X    strcpy(s, (unsigned char *) getline(15, 1, 32, ""));
  1132. X    ansi( "md" );
  1133. X    printf("\n%s: ", DIS06_MSG);
  1134. X    ansi( "me" );
  1135. X    strcpy(DIS_subject, (unsigned char *) getline(60, 1, 32, ""));
  1136. X
  1137. X    lesen( s );
  1138. X
  1139. X    DISKUSSION = 0;
  1140. X  }
  1141. X}
  1142. END_OF_FILE
  1143.   if test 1370 -ne `wc -c <'src/dis.c'`; then
  1144.     echo shar: \"'src/dis.c'\" unpacked with wrong size!
  1145.   fi
  1146.   # end of 'src/dis.c'
  1147. fi
  1148. if test -f 'src/getch.c' -a "${1}" != "-c" ; then 
  1149.   echo shar: Will not clobber existing file \"'src/getch.c'\"
  1150. else
  1151.   echo shar: Extracting \"'src/getch.c'\" \(1978 characters\)
  1152.   sed "s/^X//" >'src/getch.c' <<'END_OF_FILE'
  1153. X/*
  1154. X *    %Z% %M%    %I% %D% %Q%
  1155. X *
  1156. X *    Copyright (C) 1990 by Christian Schlichtherle
  1157. X *                  (chriss@attron.ruhr.sub.org)
  1158. X *
  1159. X *    %M% - C module for getch(S).
  1160. X *
  1161. X *    "getch" is a DOS and curses(S) like function which reads
  1162. X *    a unsigned character and returns immediately without waiting for
  1163. X *    newline.
  1164. X *
  1165. X *     getch() - Gets a unsigned character.
  1166. X *     This function gets one unsigned character and immediately returns
  1167. X *     without waiting for newline. The unsigned character is not echoed.
  1168. X *     This function can be used best when you want to input only one
  1169. X *     unsigned character within canonical input or if you need this function
  1170. X *     only very rarely.
  1171. X *     EOF is returned on errors or if an ignored signal occured.
  1172. X *    
  1173. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  1174. X */
  1175. X
  1176. X#include "defs.h"
  1177. X#include <sys/types.h>
  1178. X#include <stdio.h>    
  1179. X#include <errno.h>
  1180. X#ifndef _SYS7
  1181. X#include <sys/ioctl.h>
  1182. X#include <termio.h>
  1183. X#else
  1184. X#include <sgtty.h>
  1185. X#endif 
  1186. X
  1187. X#ifndef _SYS7
  1188. Xstatic struct termio    told, tnew;
  1189. X
  1190. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  1191. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  1192. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  1193. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  1194. X             ioctl(0, TCSETA, &tnew))
  1195. X
  1196. X#else
  1197. Xstatic struct sgttyb    told, tnew;
  1198. X
  1199. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  1200. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  1201. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  1202. X             ioctl(0, TIOCSETP, &tnew))
  1203. X
  1204. X#endif
  1205. X
  1206. Xstatic int    set = 0;
  1207. X
  1208. Xint    getch()
  1209. X{
  1210. X    int    rstat;
  1211. X    int    c;
  1212. X
  1213. X    if (!set) {
  1214. X            /* Get old terminal mode. */
  1215. X        if (get_oldmode() == -1)
  1216. X            return (EOF);
  1217. X
  1218. X        tnew = told;
  1219. X            /* Don't execute this part anymore. */
  1220. X        set = 1;
  1221. X    }
  1222. X
  1223. X        /* Set new terminal mode. */
  1224. X    if (set_newmode() == -1)
  1225. X        return (EOF);
  1226. X
  1227. X        /* 
  1228. X         * Read one character. The orginal function used 
  1229. X         * read(0, &c, 1) but getchar is a macro 
  1230. X         * and faster. Xenox Fri Jun 19 20:44:46 DST 1992
  1231. X         */
  1232. X    c = getchar();
  1233. X
  1234. X        set_oldmode();
  1235. X
  1236. X    return ((int)c);
  1237. X}
  1238. X
  1239. END_OF_FILE
  1240.   if test 1978 -ne `wc -c <'src/getch.c'`; then
  1241.     echo shar: \"'src/getch.c'\" unpacked with wrong size!
  1242.   fi
  1243.   # end of 'src/getch.c'
  1244. fi
  1245. if test -f 'src/help.c' -a "${1}" != "-c" ; then 
  1246.   echo shar: Will not clobber existing file \"'src/help.c'\"
  1247. else
  1248.   echo shar: Extracting \"'src/help.c'\" \(2419 characters\)
  1249.   sed "s/^X//" >'src/help.c' <<'END_OF_FILE'
  1250. X/***************************************************************************/
  1251. X/*        PROGRAMM  ix/Mbox                           */
  1252. X/*             DATEI  help.c                           */
  1253. X/*        FUNKTIONEN  help()                           */
  1254. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  1255. X/*  LETZTE AENDERUNG  16.11.1991                       */
  1256. X/***************************************************************************/
  1257. X
  1258. X#include <stdio.h>
  1259. X
  1260. X#include "mbox.h"
  1261. X
  1262. X
  1263. X/***************************************************************************/
  1264. X/*      FUNKTION  help()                            */
  1265. X/*  BESCHREIBUNG  Der Inhalt der Datei HILFE wird entweder komplett ange-  */
  1266. X/*          zeigt, oder aber in Abhaengigkeit von 'cmd' in Auszuegen */
  1267. X/*          ausgegeben.                                              */
  1268. X/*     PARAMETER  cmd  =  '*'      =  HILFE wird komplett ausgegeben       */
  1269. X/*                        '='      =  SHORTHELP                            */
  1270. X/*          #Befehl         =  HILFE zu "Befehl" wird ausgegeben    */
  1271. X/*     RUECKGABE  0  =  Keinen Eintrag gefunden                            */
  1272. X/*                n  =  Anzahl der Eintraege                   */
  1273. X/***************************************************************************/
  1274. X
  1275. Xint help(cmd)
  1276. Xunsigned char cmd[];
  1277. X{
  1278. X  FILE *fp;
  1279. X  unsigned char s[255];
  1280. X  int ende = 0, ok = 0, found = 0, toggle = 0, lines = 0;
  1281. X
  1282. X  show(KURZHILFE, 99, 99); /* RESET */
  1283. X  
  1284. X  if(cmd[0] == '='){
  1285. X    headline( HLP01_MSG );
  1286. X    show(KURZHILFE, 9999, USER.more);    
  1287. X    return 9999;
  1288. X  }
  1289. X
  1290. X  maybe_locked(HILFE, "r");
  1291. X  fp = fopen(HILFE, "r");
  1292. X  if (fp == NULL) {
  1293. X    nerror("help.c", 14, "help", "Datei-Lesefehler", HILFE);
  1294. X  }
  1295. X  if (cmd[0] != '#') {
  1296. X    ok = 2;
  1297. X    found++;
  1298. X  }
  1299. X  headline( HLP01_MSG );
  1300. X  lines = 0;
  1301. X
  1302. X  while ((fgets(s, 85, fp) != NULL) && !ende) {
  1303. X
  1304. X    if (USER.more > 0) {
  1305. X        if (lines >= MAX_SCR_LINES) {
  1306. X            lines = 0;
  1307. X            if (more() != 0) return 1;
  1308. X        }
  1309. X    }
  1310. X    if (ok == 2) {
  1311. X        if (s[0] != '#') {
  1312. X            printf("%s", s);
  1313. X            lines++;
  1314. X            if (toggle > 0) {
  1315. X                ansi("me");
  1316. X                toggle = 0;
  1317. X            }
  1318. X        }
  1319. X        else {
  1320. X            printf("\n");
  1321. X            lines++;
  1322. X            ansi("md");
  1323. X            toggle++;
  1324. X        }
  1325. X    }
  1326. X    else {
  1327. X        if ((ok == 1) && (s[0] == '#')) {
  1328. X            ok = 0;
  1329. X            printf("\n");
  1330. X            lines++;
  1331. X        }
  1332. X        if ((ok == 1) && (s[0] != '#')) {
  1333. X            printf("%s", s);
  1334. X            lines++;
  1335. X            if (toggle > 0) {
  1336. X                ansi("me");
  1337. X                toggle == 0;
  1338. X            }
  1339. X        }
  1340. X        if ((ok == 0) && (s[0] == '#')) {
  1341. X            if (strcomp(cmd, s) == 0) {
  1342. X                ok = 1;
  1343. X                found++;
  1344. X                ansi("md");
  1345. X                toggle++;
  1346. X            }
  1347. X        }
  1348. X    }
  1349. X  }
  1350. X  fclose(fp);
  1351. X
  1352. X  return found;
  1353. X}
  1354. END_OF_FILE
  1355.   if test 2419 -ne `wc -c <'src/help.c'`; then
  1356.     echo shar: \"'src/help.c'\" unpacked with wrong size!
  1357.   fi
  1358.   # end of 'src/help.c'
  1359. fi
  1360. if test -f 'src/nerror.c' -a "${1}" != "-c" ; then 
  1361.   echo shar: Will not clobber existing file \"'src/nerror.c'\"
  1362. else
  1363.   echo shar: Extracting \"'src/nerror.c'\" \(1886 characters\)
  1364.   sed "s/^X//" >'src/nerror.c' <<'END_OF_FILE'
  1365. X/***************************************************************************/
  1366. X/*        PROGRAMM  ix/Mbox                           */
  1367. X/*             DATEI  nerror.c                           */
  1368. X/*        FUNKTIONEN  nerror                           */
  1369. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  1370. X/*  LETZTE AENDERUNG  16.11.1991                       */
  1371. X/***************************************************************************/
  1372. X
  1373. X#include <stdio.h>
  1374. X#include <setjmp.h>
  1375. X
  1376. X#include "mbox.h"
  1377. X
  1378. X
  1379. Xextern jmp_buf jmpenv;
  1380. X
  1381. X
  1382. X/***************************************************************************/
  1383. X/*      FUNKTION  nerror()                           */
  1384. X/*  BESCHREIBUNG  Zeigt Systemfehler (Dateien koennen nicht gefunden o.    */
  1385. X/*          geoeffnet werden, etc.) an. Anschliessend wird die       */
  1386. X/*          Befehlseingabe aufgerufen.                               */
  1387. X/*                                                               */
  1388. X/*          ACHTUNG: Nach "nerror()" laeuft die MBox zwar weiter,    */
  1389. X/*          aber beim Terminieren wird ein "core" ausgegeben.        */
  1390. X/*     PARAMETER  file     = Datei in der der Fehler aufgetreten ist       */
  1391. X/*          line     = Zeile in der Datei                            */
  1392. X/*          function = Funktion in der Datei                         */
  1393. X/*          descr    = Fehlerbeschreibung                               */
  1394. X/*          er       = Datei/Variable                                */
  1395. X/*     RUECKGABE  keine                            */
  1396. X/***************************************************************************/
  1397. X
  1398. Xvoid nerror(file, line, function, descr, er)
  1399. Xunsigned char file[];
  1400. Xint line;
  1401. Xunsigned char function[], descr[], er[];
  1402. X{
  1403. X  unsigned char s[80];
  1404. X
  1405. X  ansi("md");
  1406. X  printf("%c%s ", CR, NER01_MSG);
  1407. X  ansi("me");
  1408. X
  1409. X  printf("%s (%s) - %s \"%s\"\n", function, file, descr, er);
  1410. X
  1411. X  sprintf(s, "[%s] %s, %d\n***** %s, %s, %s ... %s !!!",
  1412. X    NER02_MSG, file, line, function, descr, er, NER03_MSG);
  1413. X
  1414. X  control(s, 99);
  1415. X  control(s, 3);
  1416. X
  1417. X  longjmp(jmpenv, 1);
  1418. X}
  1419. X
  1420. END_OF_FILE
  1421.   if test 1886 -ne `wc -c <'src/nerror.c'`; then
  1422.     echo shar: \"'src/nerror.c'\" unpacked with wrong size!
  1423.   fi
  1424.   # end of 'src/nerror.c'
  1425. fi
  1426. if test -f 'src/outdial.c' -a "${1}" != "-c" ; then 
  1427.   echo shar: Will not clobber existing file \"'src/outdial.c'\"
  1428. else
  1429.   echo shar: Extracting \"'src/outdial.c'\" \(1018 characters\)
  1430.   sed "s/^X//" >'src/outdial.c' <<'END_OF_FILE'
  1431. X/***************************************************************************/
  1432. X/*        PROGRAMM  ix/Mbox                           */
  1433. X/*             DATEI  outdial.c                           */
  1434. X/*        FUNKTIONEN  outdial()                           */
  1435. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  1436. X/*  LETZTE AENDERUNG  02.04.1992                       */
  1437. X/***************************************************************************/
  1438. X
  1439. X#include <stdio.h>
  1440. X
  1441. X#include "mbox.h"
  1442. X
  1443. X
  1444. Xvoid outdial()
  1445. X{
  1446. X  FILE *fp;
  1447. X  
  1448. X  unsigned char s[STRING];
  1449. X  unsigned char t[STRING];
  1450. X  int a, b;
  1451. X
  1452. X  
  1453. X  fp = fopen( "/tmp/door", "w" );
  1454. X  fprintf(fp, "%s\n%s\n%d\n%d\n", 
  1455. X      USER.name, USER.account, USER.id, USER.terminal);
  1456. X  fclose(fp);
  1457. X
  1458. X  printf("\n\n");
  1459. X
  1460. X  system( "outdial" );
  1461. X
  1462. X  fp = fopen( "/tmp/acct", "r" );
  1463. X  if(fp != NULL){
  1464. X     fgets(s, 80, fp);    
  1465. X     fclose(fp);
  1466. X     unlink( "/tmp/acct" );
  1467. X  }
  1468. X  strcpy(t, (unsigned char *) strcopy(USER.account, 11, 16));
  1469. X  a = atoi(t);
  1470. X  b = atoi(s);
  1471. X  a -= b;
  1472. X
  1473. X  USER.account[11] = '\0';
  1474. X  sprintf(s, "%d", a);
  1475. X  strcat(USER.account, s);
  1476. X}
  1477. X
  1478. END_OF_FILE
  1479.   if test 1018 -ne `wc -c <'src/outdial.c'`; then
  1480.     echo shar: \"'src/outdial.c'\" unpacked with wrong size!
  1481.   fi
  1482.   # end of 'src/outdial.c'
  1483. fi
  1484. if test -f 'wendy/echo.c' -a "${1}" != "-c" ; then 
  1485.   echo shar: Will not clobber existing file \"'wendy/echo.c'\"
  1486. else
  1487.   echo shar: Extracting \"'wendy/echo.c'\" \(1659 characters\)
  1488.   sed "s/^X//" >'wendy/echo.c' <<'END_OF_FILE'
  1489. X/*
  1490. X *    %Z% %M%    %I% %D% %Q%
  1491. X *
  1492. X *    Copyright (C) 1990 by Christian Schlichtherle
  1493. X *                  (chriss@attron.ruhr.sub.org)
  1494. X *
  1495. X *    %M% - C module for getch(S).
  1496. X *
  1497. X *    "getch" is a DOS and curses(S) like function which reads
  1498. X *    a unsigned character and returns immediately without waiting for
  1499. X *    newline.
  1500. X *
  1501. X *     getch() - Gets a unsigned character.
  1502. X *     This function gets one unsigned character and immediately returns
  1503. X *     without waiting for newline. The unsigned character is not echoed.
  1504. X *     This function can be used best when you want to input only one
  1505. X *     unsigned character within canonical input or if you need this function
  1506. X *     only very rarely.
  1507. X *     EOF is returned on errors or if an ignored signal occured.
  1508. X *    
  1509. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  1510. X */
  1511. X
  1512. X
  1513. X#include <sys/types.h>
  1514. X#include <stdio.h>    
  1515. X#include <errno.h>
  1516. X#ifndef _SYS7
  1517. X#include <sys/ioctl.h>
  1518. X#include <termio.h>
  1519. X#else
  1520. X#include <sgtty.h>
  1521. X#endif 
  1522. X
  1523. X#ifndef _SYS7
  1524. Xstatic struct termio    told, tnew;
  1525. X
  1526. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  1527. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  1528. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  1529. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  1530. X             ioctl(0, TCSETA, &tnew))
  1531. X
  1532. X#else
  1533. Xstatic struct sgttyb    told, tnew;
  1534. X
  1535. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  1536. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  1537. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  1538. X             ioctl(0, TIOCSETP, &tnew))
  1539. X
  1540. X#endif
  1541. X
  1542. Xstatic int    set = 0;
  1543. X
  1544. Xvoid    echo( mode )
  1545. Xint     mode;
  1546. X{
  1547. X    int    rstat;
  1548. X
  1549. X    if(mode == 0){
  1550. X        if (!set) {
  1551. X            get_oldmode();
  1552. X            tnew = told;
  1553. X            set = 1;
  1554. X        }
  1555. X        set_newmode();
  1556. X    }    
  1557. X    if(mode == 1){
  1558. X            set_oldmode();
  1559. X    }
  1560. X}
  1561. X
  1562. END_OF_FILE
  1563.   if test 1659 -ne `wc -c <'wendy/echo.c'`; then
  1564.     echo shar: \"'wendy/echo.c'\" unpacked with wrong size!
  1565.   fi
  1566.   # end of 'wendy/echo.c'
  1567. fi
  1568. if test -f 'wendy/english.hlp' -a "${1}" != "-c" ; then 
  1569.   echo shar: Will not clobber existing file \"'wendy/english.hlp'\"
  1570. else
  1571.   echo shar: Extracting \"'wendy/english.hlp'\" \(752 characters\)
  1572.   sed "s/^X//" >'wendy/english.hlp' <<'END_OF_FILE'
  1573. XCursor up ............... CTRL-K,UP    Cursor to start of line . CTRL-A,HOME
  1574. XCursor down ..... ....... CTRL-J,DOWN  Cursor to end of line ... CTRL-Z,END
  1575. X
  1576. XDelete line ............. CTRL-Y       Backwards a page ........ CTRL-B,PAGEUP
  1577. XDelete to end of line ... CTRL-T       Forward a page .......... CTRL-F,PAGEDN
  1578. X
  1579. XRebuild screen .......... CTRL-R       Insertmode on/off ....... CTRL-V,INSERT
  1580. XRebuild line ............ CTRL-L       Setup (!!!) ............. CTRL-S
  1581. X
  1582. XSave file ............... CTRL-W       State ................... CTRL-G
  1583. XExit .................... CTRL-X       Ruler ................... CTRL-P
  1584. X
  1585. XMark block .............. CTRL-Q       Choose RTF-features ..... CTRL-U
  1586. XRTF on/off .............. CTRL-N       VI-Commandmode .......... ESC:
  1587. END_OF_FILE
  1588.   if test 752 -ne `wc -c <'wendy/english.hlp'`; then
  1589.     echo shar: \"'wendy/english.hlp'\" unpacked with wrong size!
  1590.   fi
  1591.   # end of 'wendy/english.hlp'
  1592. fi
  1593. if test -f 'wendy/getch.c' -a "${1}" != "-c" ; then 
  1594.   echo shar: Will not clobber existing file \"'wendy/getch.c'\"
  1595. else
  1596.   echo shar: Extracting \"'wendy/getch.c'\" \(1978 characters\)
  1597.   sed "s/^X//" >'wendy/getch.c' <<'END_OF_FILE'
  1598. X/*
  1599. X *    %Z% %M%    %I% %D% %Q%
  1600. X *
  1601. X *    Copyright (C) 1990 by Christian Schlichtherle
  1602. X *                  (chriss@attron.ruhr.sub.org)
  1603. X *
  1604. X *    %M% - C module for getch(S).
  1605. X *
  1606. X *    "getch" is a DOS and curses(S) like function which reads
  1607. X *    a unsigned character and returns immediately without waiting for
  1608. X *    newline.
  1609. X *
  1610. X *     getch() - Gets a unsigned character.
  1611. X *     This function gets one unsigned character and immediately returns
  1612. X *     without waiting for newline. The unsigned character is not echoed.
  1613. X *     This function can be used best when you want to input only one
  1614. X *     unsigned character within canonical input or if you need this function
  1615. X *     only very rarely.
  1616. X *     EOF is returned on errors or if an ignored signal occured.
  1617. X *    
  1618. X *    Modificated by andreas@xenox.w.open.de 06/20/92 Xenox
  1619. X */
  1620. X
  1621. X#include "defs.h"
  1622. X#include <sys/types.h>
  1623. X#include <stdio.h>    
  1624. X#include <errno.h>
  1625. X#ifndef _SYS7
  1626. X#include <sys/ioctl.h>
  1627. X#include <termio.h>
  1628. X#else
  1629. X#include <sgtty.h>
  1630. X#endif 
  1631. X
  1632. X#ifndef _SYS7
  1633. Xstatic struct termio    told, tnew;
  1634. X
  1635. X#define    get_oldmode()    ioctl(0,TCGETA, &told)
  1636. X#define    set_oldmode()    ioctl(0,TCSETA, &told)
  1637. X#define    set_newmode()    (tnew.c_cc[VMIN] = 1,tnew.c_cc[VTIME] = 0,\
  1638. X             tnew.c_lflag &= ~(ICANON | ECHO),\
  1639. X             ioctl(0, TCSETA, &tnew))
  1640. X
  1641. X#else
  1642. Xstatic struct sgttyb    told, tnew;
  1643. X
  1644. X#define    get_oldmode()    ioctl(0,TIOCGETP, &told)
  1645. X#define    set_oldmode()    ioctl(0,TIOCSETP, &told)
  1646. X#define    set_newmode()    (tnew.sg_flags |= RAW,tnew.sg_flags &= ~ECHO,\
  1647. X             ioctl(0, TIOCSETP, &tnew))
  1648. X
  1649. X#endif
  1650. X
  1651. Xstatic int    set = 0;
  1652. X
  1653. Xint    getch()
  1654. X{
  1655. X    int    rstat;
  1656. X    int    c;
  1657. X
  1658. X    if (!set) {
  1659. X            /* Get old terminal mode. */
  1660. X        if (get_oldmode() == -1)
  1661. X            return (EOF);
  1662. X
  1663. X        tnew = told;
  1664. X            /* Don't execute this part anymore. */
  1665. X        set = 1;
  1666. X    }
  1667. X
  1668. X        /* Set new terminal mode. */
  1669. X    if (set_newmode() == -1)
  1670. X        return (EOF);
  1671. X
  1672. X        /* 
  1673. X         * Read one character. The orginal function used 
  1674. X         * read(0, &c, 1) but getchar is a macro 
  1675. X         * and faster. Xenox Fri Jun 19 20:44:46 DST 1992
  1676. X         */
  1677. X    c = getchar();
  1678. X
  1679. X        set_oldmode();
  1680. X
  1681. X    return ((int)c);
  1682. X}
  1683. X
  1684. END_OF_FILE
  1685.   if test 1978 -ne `wc -c <'wendy/getch.c'`; then
  1686.     echo shar: \"'wendy/getch.c'\" unpacked with wrong size!
  1687.   fi
  1688.   # end of 'wendy/getch.c'
  1689. fi
  1690. if test -f 'wendy/wendy.h' -a "${1}" != "-c" ; then 
  1691.   echo shar: Will not clobber existing file \"'wendy/wendy.h'\"
  1692. else
  1693.   echo shar: Extracting \"'wendy/wendy.h'\" \(2114 characters\)
  1694.   sed "s/^X//" >'wendy/wendy.h' <<'END_OF_FILE'
  1695. X#include <stdio.h>
  1696. X#include <signal.h>
  1697. X
  1698. X#ifndef EXTERN
  1699. X#define EXTERN extern
  1700. X#endif
  1701. X
  1702. X#ifdef _LOCAL
  1703. X#    define HILFE          "/local/mbox/wendy/wendy.hlp"
  1704. X#    define VERSION       " WENDY 1.1e  -  Simple (MIME) RichTextFormat Editor  -  HILFE: CTRL-O "
  1705. X#else
  1706. X#    define HILFE        "/local/mbox/wendy/english.hlp"
  1707. X#    define VERSION       " WENDY 1.1e  -  Simple (MIME) RichTextFormat Editor  -  HELP: CTRL-O "
  1708. X#endif
  1709. X
  1710. X#define RULERLINE     "1...5...10...15...20...25...30...35...40...45...50...55...60...65...70...75...80"
  1711. X
  1712. X#define CR        13
  1713. X#define LF        10
  1714. X#define BS        8
  1715. X#define TAB        9
  1716. X#define ESC        27
  1717. X
  1718. X#define ENTER       13
  1719. X
  1720. X#define CTRL_A        1
  1721. X#define CTRL_B      2
  1722. X#define CTRL_C        3
  1723. X#define CTRL_D      4
  1724. X#define CTRL_E        5
  1725. X#define CTRL_F      6
  1726. X#define CTRL_G      7
  1727. X#define CTRL_H      8
  1728. X
  1729. X#define CTRL_J      10  
  1730. X#define CTRL_K        11
  1731. X#define CTRL_L        12
  1732. X
  1733. X#define CTRL_N        14
  1734. X#define CTRL_O        15
  1735. X#define CTRL_P        16
  1736. X#define CTRL_Q        17
  1737. X#define CTRL_R        18
  1738. X#define CTRL_S        19
  1739. X#define CTRL_T      20
  1740. X#define CTRL_U        21
  1741. X#define CTRL_V      22
  1742. X#define CTRL_W      23
  1743. X#define CTRL_X      24
  1744. X#define CTRL_Y        25
  1745. X#define CTRL_Z      26
  1746. X
  1747. X#define UP        9165
  1748. X#define DOWN        9166
  1749. X#define LEFT        9168
  1750. X#define RIGHT        9167
  1751. X
  1752. X#define PGUP        9186
  1753. X#define PGDN        9185
  1754. X
  1755. X#define END         9189
  1756. X#define HOME        9172    
  1757. X
  1758. X#define DEL        9152
  1759. X#define INS        9151
  1760. X
  1761. X#define NUM5        9171
  1762. X
  1763. X
  1764. X#define TLX_END        9175    /* TELIX 3.11  &  PROCOMM 2.4.1 */
  1765. X#define TLX_DEL        127
  1766. X#define TLX_INS        0
  1767. X
  1768. X#define TEM_INS     22    /* TELEMATE 2.11 */
  1769. X#define TEM_DEL     7
  1770. X
  1771. X#define    BLANK        127
  1772. X
  1773. X#define STRING         140
  1774. X#define LONGSTRING    255
  1775. X
  1776. X#define MAXLINES     2000
  1777. X
  1778. X#define LINELENGTH    180
  1779. X
  1780. X#define is_centered    1
  1781. X#define is_richtext    2
  1782. X#define is_plain    4
  1783. X
  1784. X#define BLOCKMODE    2
  1785. X
  1786. XFILE *ROLLBACK;
  1787. X
  1788. Xunsigned char SCREEN[27][STRING];
  1789. Xunsigned char ATTRIB[27][STRING];
  1790. X
  1791. Xunsigned char TEXT[MAXLINES][LINELENGTH];
  1792. Xint  FLAG[MAXLINES];
  1793. X
  1794. Xunsigned char version[STRING];
  1795. X
  1796. Xunsigned char umlaut[STRING], terminal[STRING];
  1797. X
  1798. Xint x, y, ypos, lastline, xruler;
  1799. X
  1800. Xint NEU, CHANGED, REALLY, MARK, RULER, STATUSM, FORMATTER;
  1801. Xint MAXX, MAXY, START;
  1802. X
  1803. Xint RTF_attrib;
  1804. Xint RTF_toggle;
  1805. Xint INS_mode;
  1806. X
  1807. Xstruct block{
  1808. X    int status;
  1809. X    int x1;
  1810. X    int y1;
  1811. X    int x2;
  1812. X    int y2;
  1813. X    int y;
  1814. X    int ypos;
  1815. X} BLOCK;
  1816. END_OF_FILE
  1817.   if test 2114 -ne `wc -c <'wendy/wendy.h'`; then
  1818.     echo shar: \"'wendy/wendy.h'\" unpacked with wrong size!
  1819.   fi
  1820.   # end of 'wendy/wendy.h'
  1821. fi
  1822. echo shar: End of archive 14 \(of 15\).
  1823. cp /dev/null ark14isdone
  1824. MISSING=""
  1825. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ; do
  1826.     if test ! -f ark${I}isdone ; then
  1827.     MISSING="${MISSING} ${I}"
  1828.     fi
  1829. done
  1830. if test "${MISSING}" = "" ; then
  1831.     echo You have unpacked all 15 archives.
  1832.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1833. else
  1834.     echo You still must unpack the following archives:
  1835.     echo "        " ${MISSING}
  1836. fi
  1837. exit 0
  1838. exit 0 # Just in case...
  1839.