home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-07-09 | 61.0 KB | 2,050 lines |
- Newsgroups: comp.sources.misc
- From: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
- Subject: v31i022: mbox - A BBS for UNIX and MINIX v1.6 PL10, Part06/11
- Message-ID: <1992Jul10.050339.27565@sparky.imd.sterling.com>
- X-Md4-Signature: a24a1c952ebbf7c61fa38a72491b929f
- Date: Fri, 10 Jul 1992 05:03:39 GMT
- Approved: kent@sparky.imd.sterling.com
-
- Submitted-by: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
- Posting-number: Volume 31, Issue 22
- Archive-name: mbox/part06
- Environment: MINIX, ISC, ESIX, SVR3
- Supersedes: mbox: Volume 29, Issue 63-72
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then feed it
- # into a shell via "sh file" or similar. To overwrite existing files,
- # type "sh file -c".
- # The tool that generated this appeared in the comp.sources.unix newsgroup;
- # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
- # Contents: etc/deutsch.befehl etc/deutsch.hilfe etc/help.hilfe
- # src/pd.c
- # Wrapped by kent@sparky on Thu Jul 9 23:26:02 1992
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- echo If this archive is complete, you will see the following message:
- echo ' "shar: End of archive 6 (of 11)."'
- if test -f 'etc/deutsch.befehl' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'etc/deutsch.befehl'\"
- else
- echo shar: Extracting \"'etc/deutsch.befehl'\" \(2848 characters\)
- sed "s/^X//" >'etc/deutsch.befehl' <<'END_OF_FILE'
- X/***************************************************************************/
- X/* Wer diese Datei aendert sollte GENAU wissen was er tut. Die Reihen- */
- X/* folge der Befehle ist NICHT willkuerlich festgelegt worden, sondern */
- X/* entspricht der Vorgabe fuer GEOnet-Befehle und deren Abkuerzungen. */
- X/* */
- X/* S(chreiben) kommt vor SE(tup) und L(esen) vor LOE(schen) etc. ... wer */
- X/* sich nicht voellig sicher ist, sollte die Datei einfach im Urzustand */
- X/* belassen. */
- X/* */
- X/* Die Bedeutung der versch. Spalten */
- X/* ======================================================================= */
- X/* ID - Nummer des Befehls (siehe "loop()") */
- X/* Intern - Benoetigtes Userlevel */
- X/* Extern - Bei einigen Befehle wird unterscheiden zwischen intern */
- X/* und extern. Z.B. beim Befehl "schreiben" wird diese */
- X/* Regelung angewendet, damit User zwar an die lokalen */
- X/* Bretter senden duerfen, nicht aber an die externen. */
- X/* Prototyp - Enthaelt diese Spalte eine '1', wird der Befehl bei der */
- X/* Befehlsuebersicht angezeigt. */
- X/* Befehl - Unter diesem Namen wird der Befehl aufgerufen */
- X/* */
- X/* */
- X/* ACHTUNG: Zwischen Kommentar und Ueberschrift EINE Leerzeile einfuegen ! */
- X/***************************************************************************/
- X
- XID Intern Extern Prototyp Befehl
- X===============================================
- X110 0 0 1 +
- X120 0 0 1 -
- X130 0 0 1 Anrufer
- X140 1 0 1 Ansage
- X150 0 0 1 Brett
- X160 0 2 1 Brief
- X170 0 0 1 Chat
- X170 0 0 0 Dialog
- X370 0 0 0 Datum
- X170 0 0 0 Co
- X999 0 0 1 Demo
- X440 0 0 1 Download
- X210 0 0 1 Lesen
- X480 1 1 1 Edit
- X180 0 0 1 Ende
- X180 0 0 0 Quit
- X180 0 0 0 Log
- X460 0 0 0 Area
- X460 0 0 1 Gruppe
- X180 0 0 0 Goodbye
- X190 0 0 1 Hilfe
- X195 0 1 0 ~PD
- X200 0 0 1 Inhalt
- X200 0 0 0 Dir
- X205 0 0 0 Id
- X215 0 0 0 Level
- X220 1 1 1 Loeschen
- X330 0 0 1 Makro
- X240 6 6 1 Minix
- X240 6 6 0 Execute
- X450 1 1 1 Outdial
- X450 1 1 0 Od
- X270 0 0 1 Portinfo
- X270 0 0 0 Who
- X270 0 0 0 Wer
- X260 0 0 1 Postfach
- X260 0 0 0 Antrag
- X275 9 9 0 Relogin
- X400 0 0 1 Richtung
- X230 0 5 1 Schreiben
- X280 0 0 1 Setup
- X390 0 0 1 Spiele
- X430 1 1 1 Suchen
- X470 0 0 1 Sysinfo
- X280 0 0 0 Passwort
- X280 0 0 0 Ansi
- X280 0 0 0 Bell
- X280 0 0 0 Anschrift
- X290 0 0 1 Status
- X410 0 0 1 Statistik
- X300 0 0 1 User
- X310 1 0 1 Unterschrift
- X230 0 5 1 Upload
- X320 0 0 1 Version
- X340 1 1 1 Weiterleiten
- X380 0 0 0 Zeit
- X125 1 9 0 Admin
- X130 0 0 0 Protokoll
- X250 0 0 1 PM
- X150 0 0 0 Cd
- X300 0 0 0 Finger
- X160 0 2 0 Mail
- X180 0 0 0 Quit
- X180 0 0 0 Exit
- X180 0 0 0 Logout
- X420 0 0 0 RING
- X350 0 0 0 Sleep
- X360 0 0 0 Keypressed
- X998 7 7 0 ~MAIL_DUMMY
- END_OF_FILE
- if test 2848 -ne `wc -c <'etc/deutsch.befehl'`; then
- echo shar: \"'etc/deutsch.befehl'\" unpacked with wrong size!
- fi
- # end of 'etc/deutsch.befehl'
- fi
- if test -f 'etc/deutsch.hilfe' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'etc/deutsch.hilfe'\"
- else
- echo shar: Extracting \"'etc/deutsch.hilfe'\" \(18178 characters\)
- sed "s/^X//" >'etc/deutsch.hilfe' <<'END_OF_FILE'
- X#?
- XBefehl "?"
- X
- XDie beim aktuellen Level verfuegbaren Befehle werden angezeigt. Um auch die
- Xuebrigen Befehle anzeigen zu lassen, muss als Argument ein "*" angegeben
- Xwerden.
- X
- X#0
- XBefehl "0" ("1 - 9")
- X
- XUeber die Ziffern 0-9 wird der dynamische Befehlspuffer aufgerufen. Die Ziffer
- X0 zeigt die aktuelle Belegung dieser "Hot-Keys" an, 1-9 rufen denn gespreicherten
- XBefehl ab. Ausserdem kann man diese Befehle auch mit Hilfe der Cursortasten
- XUP und DOWN durchblaettern.
- X
- X#+
- XBefehl "+"
- X
- XDas naechste Brett mit neuen Nachrichten wird aufgerufen. Innerhalb des Brettes
- Xkann mit den ueblichen Befehlen (Inhalt, Lesen) gearbeitet werden.
- X
- X#-
- XBefehl "-"
- X
- XDas vorherige Brett mit neuen Nachrichten wird aufgerufen. Innerhalb des
- XBrettes kann mit den ueblichen Befehlen (Inhalt, Lesen) gearbeitet werden.
- X
- X#ANRUFER
- XBefehl "Anrufer" ("Protokoll")
- X
- XEine Liste der Anrufer wird angezeigt. Wird "*" als Parameter angegeben,
- Xzeigt das System ALLE Eintaege des Protokolls an, sonst nur die letzten 21.
- X
- XDie Option "#" (also "Anrufer #") erstellt eine Statistik aus den Daten
- Xder Anrufer-Liste.
- X
- X#ANSAGE
- XBefehl "Ansage"
- X
- XWenn ein anderer Teilnehmer Ihnen eine persoenliche Nachricht senden will,
- Xwird ihm der "Ansage"-Text angezeigt. Sollten sie z.B. fuer laenger Zeit
- Xverreisen und desshalb nicht sofort antworten koennen, teilen sie das im
- X"Ansage"-Text mit.
- X
- X#BRETT
- XBefehl "Brett" ("cd")
- X
- XDie Nachrichten dieser MBox sind nach Themen geordnet in verschiedenen
- XBrettern zusammengefasst. Der Ausdruck "Brett" ist in diesem Zusammenhang
- Xgleichbedeutend mit dem Begriff "Newsgroup" der UUCP-Terminologie.
- X
- X
- XDie verschiedenen Einsatzmoeglichkeiten des Befehls:
- X
- X"Brett" Alle Bretter mit neuen Artikeln werden angezeigt.
- X
- X"Brett *" Alle Bretter des Systems werden angezeigt. (Level)
- X
- X"Brett **" ALLE Bretter des Systems werden angezeigt.
- X
- X"Brett +" Es wird in's naechst hoehere Brett gewechselt.
- X
- X"Brett -" Es wird in's naechst niedrigere Brett gewechselt.
- X
- X"Brett !" Der Name des aktuellen Brettes wird ausgegeben.
- X
- X"Brett BRETT" Es wird in Brett "BRETT" gewechselt. Alle INHALT- und LESE-
- X Befehle beziehen sich jetzt auf "BRETT".
- X
- X
- XDa verschienden Bretter allerdings nach dem Schema "Oberbrett.Unterbrett" auf-
- Xgebaut sind, gibt es noch einige spezielle Parameter:
- X
- X"Brett #" Die sogenannten Oberbretter werden angezeigt.
- X
- X"Brett OBERBRETT" Wechselt ins Oberbrett OBERBRETT. Der Befehl INHALT
- X zeigt nun die Unterbretter dieses Oberbrettes an !!!
- X
- X"Brett UNTERBRETT" Es wird ins Brett OBERBRETT.UNTERBRETT gewechselt.
- X
- X"Brett .." Von OBERBRETT.UNTERBRETT gelangt man so wieder auf die
- X Ebene OBERBRETT.
- X
- X#BRIEF
- XBefehl "Brief" ("Mail");
- X
- XPersoenliche Post wird an Teilnehmer dieser MBox oder aber auch an User auf
- Xeinem fremden Rechner verschickt.
- X
- XUm einen "internen" Teilnehmer anzuschreiben wird Folgendes eingegeben:
- X
- X"Brief USERNAME", "Brief ALIAS" oder "Brief SH-ACCOUNT"
- X
- XZ.B.: "Brief Volker Schuermann", "Brief volkers"
- X
- XDie MBox erkennt anhand dieser Angaben den Empfaenger und ruft zur Eingabe
- Xden Editor auf. Nun kann eine Nachricht geschrieben werden. Die persoenliche
- XUNTERSCHRIFT (siehe dort) wird der Nachricht angehaengt und mit verschickt.
- X
- X
- XBei einem Brief an "externe" Teilnehmer sieht die Anschrift etwas anderes
- Xaus:
- X
- X"Brief HOST!USER", "Brief USER@HOST.DOMAIN"
- X
- XZ.B.: "Brief unnet!volkers", "brief volkers@unnet.ruhr.sub.org"
- X
- XAnsonsten verhaelt sich der Vorgang genauso wie bei einer "internen" Nachricht.
- X
- XACHTUNG: Als eingetragener Teilnehmer duerfen Sie auch Post von "externen"
- XUsern empfangen. Folgende Adressierungs-Methode ist dabei verbindlich:
- X
- X"mail unnet!VORNAME.NAME"
- X
- XDie Adresse "unnet!VORNAME.NAME" entspricht "VORNAME.NAME@unnet.ruhr.sub.org"
- Xoder auch "..!unido!uka!smurf!horga!xenox!unnet!VORNAME.NAME" ... je nach
- XDomain des Brief-Autoren.
- X
- X"VORNAME.NAME" steht in diesem Fall fuer Ihren (User-) Namen, kann aber auch
- Xkomplett durch Ihr Alias ersetzt werden (AUSNAHME !) ...
- X
- XZ.B.: "mail Volker.Schuermann@unnet.ruhr.sub.org"
- X
- X
- X#CHAT
- XBefehl "Chat" ("Dialog")
- X
- XSie betreten den Konferenzbereich. Dort koennen Sie sich mit anderen Teil-
- Xnehmern unterhalten. Dabei spielt es keine Rolle, ob Ihre Gespraechspartner
- Xebenfalls die MBox benutzen, oder auf Betriebssystem-Ebene arbeiten.
- X
- X#DOWNLOAD
- XBefehl "Download"
- X
- XDieser Befehl uebertraegt Artikel mit Hilfe eines Protokolls. Angeboten
- Xwerden ASCII (einfaches Auflisten der Textdatei) und SX/SZ/SB. Moegliche
- XParameter sind:
- X
- X"Download NUMMER" Uebertraegt den Artikel No. "NUMMER".
- X
- X"Download NUM1-NUM2" Uebertraegt die Artikel von No. "NUM1" bis "NUM2".
- X
- X"Download NUM-" Alle Artikel von "NUM" bis 32000 werden uebertragen.
- X
- X"Download -NUM" Alle Artikel von 1 bis "NUM" werden uebertragen.
- X
- XACHTUNG: "Download ??-??" uebertraegt alle angeforderten Artikel OHNE
- XUnterbrechung. Die UNIX-Befehle "RX/RZ/RB" unterstuetzen diesen Modus.
- X
- X#EDIT
- XBefehl "Edit"
- X
- XEin Artikel kann nachtraeglich ueberarbeitet werden. Abhaengig vom USER-
- XLevel wird der Zugriff entweder auf alle Artikel gewaehrt, oder aber nur
- Xauf solche Artikel, die der jeweilige User selbst gesendet hat.
- X
- X#ENDE
- XBefehl "Ende" ("Quit")
- X
- XDas Programm wird beendet. Teilnehmer ohne SH-Account loesen mit diesem
- XBefehl auch die Verbindung ... also VORSICHT !
- X
- XNormalerweise wird nach der Eingabe des Befehls "Ende" das Scanner-Datum und
- Xdie Scanner-Zeit aktualisiert. Gibt man als Parameter ein "*" an, wird
- Xdiese Aktion unterbunden.
- X
- X#GRUPPE
- XBefehl "Gruppe" ("Area")
- X
- XDieser Befehl wird dazu benutzt, Gruppen oder Untergruppen zu ueberspringen.
- XAbhaengig von der Option '+', '-', '++', '--' werden nur Untergruppen oder
- Xganze Gruppen vorwaerts oder rueckwaerts ausgelassen, und direkt zu naechsten
- XGruppe gesprungen.
- X
- X#HILFE
- XBefehl "Hilfe"
- X
- XZu allen Befehlen dieses Systems gibt es mit "HILFE" eine kurze Information.
- X
- X"Hilfe" eine Zusammenfassung der Befehle wird angezeigt.
- X"Hilfe *" die gesamte Hilfsdatei wird ausgegeben.
- X"Hilfe BEFEHL" zeigt nur den Eintrag zum Befehl "BEFEHL".
- X
- X#INHALT
- XBefehl "Inhalt" ("dir")
- X
- XWird als Parameter ein "*" angegeben, zeigt die MBox ein Inhaltsverzeichnis
- Xmit allen Eintraegen im aktuellen Brett an, sonst nur Neuzugaenge.
- X
- XIst das aktuelle Brett ein OBERBRETT, wird statt des Inhaltsverzeichnisses
- Xdie Liste der UNTERBRETTER ausgegeben.
- X
- X#LESEN
- XBefehl "Lesen"
- X
- XDie per Parameter angeforderten Nachrichten werden angezeigt. Die Reihenfolge
- Xinnerhalb der einzelnen Artikel haengt von der Positionierung der Artikel-
- XNummern ab.
- X
- X"Lesen NUMMER" Zeigt den Artikel No. "NUMMER" an.
- X
- X"Lesen NUM1-NUM2" Zeigt die Artikel von No. "NUM1" bis "NUM2" an
- X Ist "NUM2" groesser als "NUM1" wird die Reihenfolge
- X bei der Ausgabe umgekehrt.
- X
- X"Lesen NUM-" Alle Artikel von "NUM" bis 32000 werden angezeigt
- X
- X"Lesen -NUM" Alle Artikel von 1 bis "NUM" werden angezeigt
- X
- X"Lesen" Es werden alle neuen Artikel gezeigt (siehe INHALT)
- X
- X"Lesen *" Saemtliche Eintraege eines Brettes werden ausgegeben
- X
- X
- XBei seitenweiser Ausgabe (siehe SETUP) kann mit der LEERTASTE weiterge-
- Xblaettert werden. Die Tasten "q" o. "Q" beenden die Anzeige.
- X
- XDie Ausgabe laesst sich mit "x", "X", "DEL", "CTRL-X" und "CTRL-D" komplett
- Xabbrechen (z.B. bei "Lesen *").
- X
- XIst der Artikel beendet, erscheint eine Eingabeaufforderung. Dort kann man
- Xentscheiden zwischen ABBRECHEN, BEANTWORTEN, NAECHSTE, VORHERIGE und
- XWIEDERHOLEN ... mit Hilfe dieser Auswahl kann man durch die einzelnen
- XNachrichten eines Brettes blaettern.
- X
- X#LOESCHEN
- XBefehl "Loeschen"
- X
- XDie per Parameter benannten Nachrichten werden geloescht. Wird keinerlei
- XAngabe gemacht, loescht das System ALLE Eintraege !
- X
- X"Loeschen NUMMER" Loescht den Artikel No. "NUMMER"
- X
- X"Loeschen NUM1-NUM2" Loescht die Artikel von No. "NUM1" bis "NUM2"
- X
- X"Loeschen NUM-" Alle Artikel von "NUM" bis 32000 werden geloescht
- X
- X"Loeschen -NUM" Alle Artikel von 1 bis "NUM" werden entfernt
- X
- X"Loeschen" Es werden alle (!) persoenlichen Mails geloescht
- X
- XACHTUNG: Der Befehl ist NICHT rueckgaengig zu machen ! Da wir hier unter
- X UNIX arbeiten, halten wird uns an die Devise: "Der User weiss was
- X er tut, also KEINE Rueckfragen - wenn er loeschen will, will er
- X loeschen ..."
- X
- X#MAKRO
- XBefehl "Makro"
- X
- XUm haeufig wiederkehrende Befehlsfolgen nicht jedesmal komplett eingeben
- Xzu muessen, kann man Makros mit diesen Kommandos vereinbaren. Nach der
- XVereinbarung genuegt die Angabe des Makro-Names, um die Befehle aufzurufen.
- X
- XMakro = Befehlsfolge
- X===========================================================================
- Xandi = BRIEF andreas@xenox.ruhr.de
- Xwalt = BRIEF Walter, WEITERLEITEN weller!walterb
- Xgrp = BRIEF volkers, WEITER xenox, WEITER stefans, WEITER joergg
- Xsts = BRI Stefan S, WEI stefans@coduck.ruhr.sub.org, WEI unnet!stefans
- Xin = +, INHALT, KEY, in
- Xpp = PORTINFO, SLEEP 5, pp
- X
- XDie letzen beiden Beispiele demonstrieren "rekursive" Makros. Dabei werden
- Xdie Befehle "KEYPRESSED" (wartet auf einen Tastendruck - "CTRL-X", "x" und
- X"q" beenden den Vorgang) und "SLEEP nnn" (wartet "nnn" Sekunden) verwendet.
- X
- XMakros lassen sich auch in der Kommandozeile definieren. Es genuegt eine
- Xgueltige Vereinbarung inzugeben (siehe oben) - sie wird automagisch in
- Xdie Makro-Sammlung aufgenommen.
- X
- X#MINIX
- XBefehl "Minix" ("execute")
- X
- XMit entsprechendem LEVEL kann man mit dem Befehl "Minix OS-BEFEHL" ein
- XKommando auf Betriebssystem-Ebene ausfuehren.
- X
- XZ.B. "Minix date", "Minix whodo", "Minix ps -lax"
- X
- X#OUTDIAL
- XBefehl "Outdial"
- X
- XEine Verbindung zu externen Datenbanken und Mailboxen kann mit diesem
- XBefehl hergestellt werden.
- X
- XDieser Service befindet sich im Teststadium. Entsprechende Berechtigungen
- Xund weitere Informationen gibt's beim Sysop.
- X
- X#PM
- XBefehl "PM"
- X
- XDie oeffentlichen Bretter werden verlassen und das persoenliche Postfach
- Xgeoeffnet. Die Befehle INHALT, LESEN, LOESCHEN beziehen sich nun auf das
- XPostfach.
- X
- X#PORTINFO
- XBefehl "Portinfo" ("Wer")
- X
- XDas System holt sich Informationen ueber die Taetigkeit aller Teilnehmer und
- Xzeigt sie zusammen mit Name, Terminal-Port und Login-Zeit an. Ist der
- XTeilnehmer in der MBox aktiv, wird ausserdem sein letzter Befehl angezeigt,
- Xbei SH-Usern wird der aktuellste Prozess angezeigt.
- X
- X#POSTFACH
- XBefehl "Postfach"
- X
- XUm persoenliche Post erhalten zu koennen, und um an die externen Bretter
- Xsenden zu duerfen, muss das System einen "Account" einrichten. Sie werden
- Xgebeten Ihren Namen und einige pers. Daten anzugeben. Wenn Sie nur inner-
- Xhalb der Box Post u. Nachrichten versenden wollen, genuegt der Name. Falls
- XSie aber auch an die extrenen Bretter senden wollen, und PMs an User auf
- Xanderen Rechnern verschicken wollen, MUSS auch die Anschrift stimmig ange-
- Xgeben werden ...
- X
- X#RICHTUNG
- XBefehl "Richtung"
- X
- XMit diesem Befehl kann die Leserichtung beeinflusst werden. D.h. ob zuerst
- Xdie aeltern, oder die neuer Artikel angezeigt werden sollen. Diese Einstellung
- Xgilt sowohl fuer den Befehl "Lesen" als auch fuer den Befehl "Inhalt".
- XMit dem Befehl "Setup" kann (im Untermenue "Textausgabe") die Leserichtung
- Xgespeichert werden.
- X
- XACHTUNG: der Befehl "Richtung" setzt die im SETUP gespeicherte Vorgabe zwar
- X fuer die Dauer der Session ausser Kraft, beim naechsten Login aber,
- X wird der Vorgabewerte wieder aktiviert.
- X
- X#SCHREIBEN
- XBefehl "Schreiben"
- X
- XEin neuer Artikel kann mit diesem Befehl an eines der Bretter gesendet werden.
- XVor der eigentlichen Eingabe werden noch "Subject" (das Thema des Artikels)
- Xund "Keywords" (falls mal nach bestimmten Schluesselworten gesucht werden
- Xsollte) abgefragt. Anschliessend wird der Editor zur Erfassung gestartet.
- X
- XJe nach Brett und Userlevel wird der Artikel nach Beendigung der Eingabe
- Xentweder nur lokal verbreitet, oder aber an eines der UUCP-Netze verschickt.
- X
- X#SETUP
- XBefehl "Setup" ("Anschrift", "Ansi", "Bell", "More", "Terminal", "Passwort")
- X
- XIhre persoenlichen Daten und System-Parameter koennen mit diesem Befehl
- Xbearbeitet werden.
- X
- XTerminal: Sie haben die Wahl zwischen drei Terminal-Emulation und einer
- X reinen Dump-Ausgabe. Vorzuziehen ist die "ANSI"-Einstellung, weil
- X sie von allen gaengigen Terminal-Programmen unterstuetzt wird.
- X
- XEditor: Es werden einige Editoren angeboten, deren Einsatz vom gewaehlten
- X Terminaltyp abhaengig ist. GAESTE und User ohne SH-Account arbeiten
- X generell mit einen zeilenorientierten Editor (LED).
- X
- XPrompt: Der Prompt (die Eingabeaufforderung) kann verschiedene Informationen
- X ausgeben. Entweder das aktuelle Brett, die Uhrzeit oder die ver-
- X brauchten Telefongebuehren (ACHTUNG: Feiertage werden NICHT berueck-
- X sichtigt, Wechseln zwischen Norm- und Billigtarif waehrend der
- X Verbindung wird NICHT registriert ... es gilt immer der Tarif zur
- X Anzeigezeit).
- X
- XAusgabe: Texte koennen entweder bildschirmweise, oder kontinuierlich ausge-
- X geben werden. Bei der ersten Methode wird mit der LEERTASTE weiter-
- X geblaettert, die Tasten "q" o. "Q" beenden die Ausgabe. Die konti-
- X nuierliche Ausgabe wird mit CTRL-S gestoppt und mit CTRL-Q
- X wieder aufgenommen. Mit CTRL-X (oder DEL) kann die Ausgabe abge-
- X brochen werden.
- X
- X Ausserdem kann an dieser Stelle die Leserichtung vorgegegben werden.
- X D.h. es wird entschieden, ob zuerst die aelteren, oder zuerst die
- X neueren Artikel angezeigt werden sollen.
- X
- XAnschrift: Persoenliche Daten wie (User-)Name, Anschrift etc. koennen mit
- X dieser Option geandert werden. Je detailierter die Angaben, desto
- X ehr wird eine Schreibberechtigung fuer extrene Bretter vergeben.
- X
- XPasswort: Das Passwort sollte regelmaessig geandert werden, um die persoenl.
- X Daten und die Post zu schuetzten.
- X
- XIntro: Nach dem Anmelden im System kann man sich eine Statusmeldung und
- X eine aktuelle Information anzeigen lassen. Beide Anzeigen koennen
- X getrennt unterbunden werden.
- X
- XScanner: Hier kann das Datum geaendert werden, das bei der Bestimmung
- X aktueller Eintraege zugrunde gelegt wird. Je weiter zurueckdatiert
- X wird, desto mehr Eintraege werden angezeigt. Ausserdem kann man
- X zusaetzlich die Uhrzeit als Vergleichswert einsetzen.
- X
- X#SPIELE
- XBefehl "Spiele"
- X
- XEine Liste der ONLINE-Spiele wird angezeigt. Die Spiele verwenden z.T.
- XTerminal-Emulationen - also ACHTUNG! Fast alle Spiele lassen sich mit
- X"Q" oder "q" beenden.
- X
- X#STATUS
- XBefehl "Status"
- X
- XIhre persoenlichen Daten und Einstellungen werden angezeigt. Dazu zaehlen
- Xauch Angaben ueber Up- und Downloads, Onlinezeit und die UUCP-Adressen.
- X
- X#STATISTIK
- XBefehl "Statistik"
- X
- XEin Statistik der versch. Bretter (NGs) und deren aktueller Inhalt wird
- Xangezeigt. Mit der Option "*" wird die komplette Ausgabe der Statistik
- Xbefohlen, und mit "$" kann eine Uebersicht der (Transfer-)Telefongebuehren
- Xabgefragt werden. Ausserdem laesst sich mit "#" ein Protokoll der Down-
- Xloads aus den versch. PD-Brettern abrufen. Wird stattdessen ein "%" angegeben,
- Xerfolgt eine Auswertung der Downloads. Das Ergebnis wird als "Hitliste"
- Xausgegeben.
- X
- X#SUCHEN
- XBefehl "Suchen"
- X
- XAlle (!) Artikel eine Brettes werden nach dem optional anzugebenden Such-
- Xmuster durchsucht. Die Artikel, die das Suchmuster enthalten, werden
- Xangezeigt.
- X
- X#SYSINFO
- XBefehl "Sysinfo"
- X
- XEinfach ausprobieren :-)
- X
- X#UPLOAD
- XBefehl "Upload"
- XDiesen Befehl gibt es NICHT. Der Befehl "Schreiben" bietet als Option
- Xden Upload an. Programm-Daten werden automatisch erkannt und entsprechend
- Xverarbeitet.
- X
- X#UNTERSCHRIFT
- XBefehl "Unterschrift"
- X
- XAlle Texte, die sie in dieser MBox schreiben, werden mit der "Unterschrift"
- Xbeendet. Sie koennen hier z.B. Ihre Anschrift, Ihre E-Mail Adresse oder
- Xeinen Spruch (Disclaimer) eingeben. Fuer UNIX-Kenner: der Befehl entspricht
- Xder ".signature". Ein Beispiel:
- X
- X-----------------------------------------------------------------------------
- XDAS MENSCHLICHE AN COMPUTERN Volker Schuermann,D-5600 Wpt.21,Monhofsfeld 70
- XIST IHRE GEWISSENLOSIGKEIT ! DATA +49 202 4660234 DATA +49 202 462114
- X-----------------------------------------------------------------------------
- X
- X#USER
- XBefehl: "User" ("Teilnehmer")
- X
- XSie erhalten eine Liste der Teilnehmer in diesem MBox-System. Der Wert, der
- Xdem Namen folgt (z.B. "J. Random Looser (24)"), zeigt die UserID. Je niedriger
- Xdie Nummer, desto laenger ist der User eingtragen - jede Nummer wird nur
- Xeinmal vergeben.
- X
- XWird als Argument ein "*" angehaengt, gibt die MBox eine detailierte Liste aus,
- Xdie z.B. den letzen Anruf der jeweiligen User, das Userlevel etc. enthaelt.
- X
- XDetailierte Informationen ueber einzelnen User erhaelt man, wenn man als
- XOption den Namen ("Vorname Name", "Alias", "Shell-Account") angibt.
- X
- X#VERSION
- XBefehl: "Version"
- X
- XDie aktulle Versionnummer wird angezeigt. Sollten Sie einmal einen Fehler
- Xim Programm finden, geben Sie diese Nummer bei Ihrer Fehlerbeschreibung
- Xbitte an.
- X
- Xix/Mbox 0.8.2 by <volkers@unnet.ruhr.sub.org>
- X =====
- X
- XDie Fehlerberschreibung sende Sie per E-Mail an die Anschrift "<volkers@...>".
- X
- XMit der "Version #"-Option wird die MBox angwiesen eine Liste begabter Leute
- Xauszugeben, die massgeblich an der Entwicklung dieses Programms beteiligt
- Xwaren.
- X
- X#WEITERLEITEN
- XBefehl: "Weiterleiten"
- X
- XBriefe und Artikel koennen an andere Teilnehmer weitergeleitet werden. Dabei
- Xgilt folgende Schreibweise:
- X
- X"Weiterleiten" Der Betreff der zuletzt geschriebenen PM (!) wird
- X angezeigt. Diese PM kann weitergeleitet werden.
- X
- X"Weiterleiten USER" Die zuletztgeschrieben PM wird an den Teilnehmer
- X USER geschickt.
- X
- X"Weiterleiten NNN USER" Der Artikel/Brief NNN wird an den Teilnehmer USER
- X gesendet.
- X
- XDie Briefe/Artikel koennen vor dem Versand ueberarbeitet werden. Die Syntax
- Xist VERBINDLICH, es darf immer nur EIN Empfaenger angegeben werden.
- X
- XUSER kann ein lokaler Teilnehmer, ein User auf einem anderen Rechner, oder
- Xaber der eigene SH-Account sein:
- X
- X"Weiterleiten Volker"
- X"Weiterleiten volkers@xenox.ruhr.de",
- X"Weiterleiten unnet!volkers"
- X
- X
- END_OF_FILE
- if test 18178 -ne `wc -c <'etc/deutsch.hilfe'`; then
- echo shar: \"'etc/deutsch.hilfe'\" unpacked with wrong size!
- fi
- # end of 'etc/deutsch.hilfe'
- fi
- if test -f 'etc/help.hilfe' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'etc/help.hilfe'\"
- else
- echo shar: Extracting \"'etc/help.hilfe'\" \(18178 characters\)
- sed "s/^X//" >'etc/help.hilfe' <<'END_OF_FILE'
- X#?
- XBefehl "?"
- X
- XDie beim aktuellen Level verfuegbaren Befehle werden angezeigt. Um auch die
- Xuebrigen Befehle anzeigen zu lassen, muss als Argument ein "*" angegeben
- Xwerden.
- X
- X#0
- XBefehl "0" ("1 - 9")
- X
- XUeber die Ziffern 0-9 wird der dynamische Befehlspuffer aufgerufen. Die Ziffer
- X0 zeigt die aktuelle Belegung dieser "Hot-Keys" an, 1-9 rufen denn gespreicherten
- XBefehl ab. Ausserdem kann man diese Befehle auch mit Hilfe der Cursortasten
- XUP und DOWN durchblaettern.
- X
- X#+
- XBefehl "+"
- X
- XDas naechste Brett mit neuen Nachrichten wird aufgerufen. Innerhalb des Brettes
- Xkann mit den ueblichen Befehlen (Inhalt, Lesen) gearbeitet werden.
- X
- X#-
- XBefehl "-"
- X
- XDas vorherige Brett mit neuen Nachrichten wird aufgerufen. Innerhalb des
- XBrettes kann mit den ueblichen Befehlen (Inhalt, Lesen) gearbeitet werden.
- X
- X#ANRUFER
- XBefehl "Anrufer" ("Protokoll")
- X
- XEine Liste der Anrufer wird angezeigt. Wird "*" als Parameter angegeben,
- Xzeigt das System ALLE Eintaege des Protokolls an, sonst nur die letzten 21.
- X
- XDie Option "#" (also "Anrufer #") erstellt eine Statistik aus den Daten
- Xder Anrufer-Liste.
- X
- X#ANSAGE
- XBefehl "Ansage"
- X
- XWenn ein anderer Teilnehmer Ihnen eine persoenliche Nachricht senden will,
- Xwird ihm der "Ansage"-Text angezeigt. Sollten sie z.B. fuer laenger Zeit
- Xverreisen und desshalb nicht sofort antworten koennen, teilen sie das im
- X"Ansage"-Text mit.
- X
- X#BRETT
- XBefehl "Brett" ("cd")
- X
- XDie Nachrichten dieser MBox sind nach Themen geordnet in verschiedenen
- XBrettern zusammengefasst. Der Ausdruck "Brett" ist in diesem Zusammenhang
- Xgleichbedeutend mit dem Begriff "Newsgroup" der UUCP-Terminologie.
- X
- X
- XDie verschiedenen Einsatzmoeglichkeiten des Befehls:
- X
- X"Brett" Alle Bretter mit neuen Artikeln werden angezeigt.
- X
- X"Brett *" Alle Bretter des Systems werden angezeigt. (Level)
- X
- X"Brett **" ALLE Bretter des Systems werden angezeigt.
- X
- X"Brett +" Es wird in's naechst hoehere Brett gewechselt.
- X
- X"Brett -" Es wird in's naechst niedrigere Brett gewechselt.
- X
- X"Brett !" Der Name des aktuellen Brettes wird ausgegeben.
- X
- X"Brett BRETT" Es wird in Brett "BRETT" gewechselt. Alle INHALT- und LESE-
- X Befehle beziehen sich jetzt auf "BRETT".
- X
- X
- XDa verschienden Bretter allerdings nach dem Schema "Oberbrett.Unterbrett" auf-
- Xgebaut sind, gibt es noch einige spezielle Parameter:
- X
- X"Brett #" Die sogenannten Oberbretter werden angezeigt.
- X
- X"Brett OBERBRETT" Wechselt ins Oberbrett OBERBRETT. Der Befehl INHALT
- X zeigt nun die Unterbretter dieses Oberbrettes an !!!
- X
- X"Brett UNTERBRETT" Es wird ins Brett OBERBRETT.UNTERBRETT gewechselt.
- X
- X"Brett .." Von OBERBRETT.UNTERBRETT gelangt man so wieder auf die
- X Ebene OBERBRETT.
- X
- X#BRIEF
- XBefehl "Brief" ("Mail");
- X
- XPersoenliche Post wird an Teilnehmer dieser MBox oder aber auch an User auf
- Xeinem fremden Rechner verschickt.
- X
- XUm einen "internen" Teilnehmer anzuschreiben wird Folgendes eingegeben:
- X
- X"Brief USERNAME", "Brief ALIAS" oder "Brief SH-ACCOUNT"
- X
- XZ.B.: "Brief Volker Schuermann", "Brief volkers"
- X
- XDie MBox erkennt anhand dieser Angaben den Empfaenger und ruft zur Eingabe
- Xden Editor auf. Nun kann eine Nachricht geschrieben werden. Die persoenliche
- XUNTERSCHRIFT (siehe dort) wird der Nachricht angehaengt und mit verschickt.
- X
- X
- XBei einem Brief an "externe" Teilnehmer sieht die Anschrift etwas anderes
- Xaus:
- X
- X"Brief HOST!USER", "Brief USER@HOST.DOMAIN"
- X
- XZ.B.: "Brief unnet!volkers", "brief volkers@unnet.ruhr.sub.org"
- X
- XAnsonsten verhaelt sich der Vorgang genauso wie bei einer "internen" Nachricht.
- X
- XACHTUNG: Als eingetragener Teilnehmer duerfen Sie auch Post von "externen"
- XUsern empfangen. Folgende Adressierungs-Methode ist dabei verbindlich:
- X
- X"mail unnet!VORNAME.NAME"
- X
- XDie Adresse "unnet!VORNAME.NAME" entspricht "VORNAME.NAME@unnet.ruhr.sub.org"
- Xoder auch "..!unido!uka!smurf!horga!xenox!unnet!VORNAME.NAME" ... je nach
- XDomain des Brief-Autoren.
- X
- X"VORNAME.NAME" steht in diesem Fall fuer Ihren (User-) Namen, kann aber auch
- Xkomplett durch Ihr Alias ersetzt werden (AUSNAHME !) ...
- X
- XZ.B.: "mail Volker.Schuermann@unnet.ruhr.sub.org"
- X
- X
- X#CHAT
- XBefehl "Chat" ("Dialog")
- X
- XSie betreten den Konferenzbereich. Dort koennen Sie sich mit anderen Teil-
- Xnehmern unterhalten. Dabei spielt es keine Rolle, ob Ihre Gespraechspartner
- Xebenfalls die MBox benutzen, oder auf Betriebssystem-Ebene arbeiten.
- X
- X#DOWNLOAD
- XBefehl "Download"
- X
- XDieser Befehl uebertraegt Artikel mit Hilfe eines Protokolls. Angeboten
- Xwerden ASCII (einfaches Auflisten der Textdatei) und SX/SZ/SB. Moegliche
- XParameter sind:
- X
- X"Download NUMMER" Uebertraegt den Artikel No. "NUMMER".
- X
- X"Download NUM1-NUM2" Uebertraegt die Artikel von No. "NUM1" bis "NUM2".
- X
- X"Download NUM-" Alle Artikel von "NUM" bis 32000 werden uebertragen.
- X
- X"Download -NUM" Alle Artikel von 1 bis "NUM" werden uebertragen.
- X
- XACHTUNG: "Download ??-??" uebertraegt alle angeforderten Artikel OHNE
- XUnterbrechung. Die UNIX-Befehle "RX/RZ/RB" unterstuetzen diesen Modus.
- X
- X#EDIT
- XBefehl "Edit"
- X
- XEin Artikel kann nachtraeglich ueberarbeitet werden. Abhaengig vom USER-
- XLevel wird der Zugriff entweder auf alle Artikel gewaehrt, oder aber nur
- Xauf solche Artikel, die der jeweilige User selbst gesendet hat.
- X
- X#ENDE
- XBefehl "Ende" ("Quit")
- X
- XDas Programm wird beendet. Teilnehmer ohne SH-Account loesen mit diesem
- XBefehl auch die Verbindung ... also VORSICHT !
- X
- XNormalerweise wird nach der Eingabe des Befehls "Ende" das Scanner-Datum und
- Xdie Scanner-Zeit aktualisiert. Gibt man als Parameter ein "*" an, wird
- Xdiese Aktion unterbunden.
- X
- X#GRUPPE
- XBefehl "Gruppe" ("Area")
- X
- XDieser Befehl wird dazu benutzt, Gruppen oder Untergruppen zu ueberspringen.
- XAbhaengig von der Option '+', '-', '++', '--' werden nur Untergruppen oder
- Xganze Gruppen vorwaerts oder rueckwaerts ausgelassen, und direkt zu naechsten
- XGruppe gesprungen.
- X
- X#HILFE
- XBefehl "Hilfe"
- X
- XZu allen Befehlen dieses Systems gibt es mit "HILFE" eine kurze Information.
- X
- X"Hilfe" eine Zusammenfassung der Befehle wird angezeigt.
- X"Hilfe *" die gesamte Hilfsdatei wird ausgegeben.
- X"Hilfe BEFEHL" zeigt nur den Eintrag zum Befehl "BEFEHL".
- X
- X#INHALT
- XBefehl "Inhalt" ("dir")
- X
- XWird als Parameter ein "*" angegeben, zeigt die MBox ein Inhaltsverzeichnis
- Xmit allen Eintraegen im aktuellen Brett an, sonst nur Neuzugaenge.
- X
- XIst das aktuelle Brett ein OBERBRETT, wird statt des Inhaltsverzeichnisses
- Xdie Liste der UNTERBRETTER ausgegeben.
- X
- X#LESEN
- XBefehl "Lesen"
- X
- XDie per Parameter angeforderten Nachrichten werden angezeigt. Die Reihenfolge
- Xinnerhalb der einzelnen Artikel haengt von der Positionierung der Artikel-
- XNummern ab.
- X
- X"Lesen NUMMER" Zeigt den Artikel No. "NUMMER" an.
- X
- X"Lesen NUM1-NUM2" Zeigt die Artikel von No. "NUM1" bis "NUM2" an
- X Ist "NUM2" groesser als "NUM1" wird die Reihenfolge
- X bei der Ausgabe umgekehrt.
- X
- X"Lesen NUM-" Alle Artikel von "NUM" bis 32000 werden angezeigt
- X
- X"Lesen -NUM" Alle Artikel von 1 bis "NUM" werden angezeigt
- X
- X"Lesen" Es werden alle neuen Artikel gezeigt (siehe INHALT)
- X
- X"Lesen *" Saemtliche Eintraege eines Brettes werden ausgegeben
- X
- X
- XBei seitenweiser Ausgabe (siehe SETUP) kann mit der LEERTASTE weiterge-
- Xblaettert werden. Die Tasten "q" o. "Q" beenden die Anzeige.
- X
- XDie Ausgabe laesst sich mit "x", "X", "DEL", "CTRL-X" und "CTRL-D" komplett
- Xabbrechen (z.B. bei "Lesen *").
- X
- XIst der Artikel beendet, erscheint eine Eingabeaufforderung. Dort kann man
- Xentscheiden zwischen ABBRECHEN, BEANTWORTEN, NAECHSTE, VORHERIGE und
- XWIEDERHOLEN ... mit Hilfe dieser Auswahl kann man durch die einzelnen
- XNachrichten eines Brettes blaettern.
- X
- X#LOESCHEN
- XBefehl "Loeschen"
- X
- XDie per Parameter benannten Nachrichten werden geloescht. Wird keinerlei
- XAngabe gemacht, loescht das System ALLE Eintraege !
- X
- X"Loeschen NUMMER" Loescht den Artikel No. "NUMMER"
- X
- X"Loeschen NUM1-NUM2" Loescht die Artikel von No. "NUM1" bis "NUM2"
- X
- X"Loeschen NUM-" Alle Artikel von "NUM" bis 32000 werden geloescht
- X
- X"Loeschen -NUM" Alle Artikel von 1 bis "NUM" werden entfernt
- X
- X"Loeschen" Es werden alle (!) persoenlichen Mails geloescht
- X
- XACHTUNG: Der Befehl ist NICHT rueckgaengig zu machen ! Da wir hier unter
- X UNIX arbeiten, halten wird uns an die Devise: "Der User weiss was
- X er tut, also KEINE Rueckfragen - wenn er loeschen will, will er
- X loeschen ..."
- X
- X#MAKRO
- XBefehl "Makro"
- X
- XUm haeufig wiederkehrende Befehlsfolgen nicht jedesmal komplett eingeben
- Xzu muessen, kann man Makros mit diesen Kommandos vereinbaren. Nach der
- XVereinbarung genuegt die Angabe des Makro-Names, um die Befehle aufzurufen.
- X
- XMakro = Befehlsfolge
- X===========================================================================
- Xandi = BRIEF andreas@xenox.ruhr.de
- Xwalt = BRIEF Walter, WEITERLEITEN weller!walterb
- Xgrp = BRIEF volkers, WEITER xenox, WEITER stefans, WEITER joergg
- Xsts = BRI Stefan S, WEI stefans@coduck.ruhr.sub.org, WEI unnet!stefans
- Xin = +, INHALT, KEY, in
- Xpp = PORTINFO, SLEEP 5, pp
- X
- XDie letzen beiden Beispiele demonstrieren "rekursive" Makros. Dabei werden
- Xdie Befehle "KEYPRESSED" (wartet auf einen Tastendruck - "CTRL-X", "x" und
- X"q" beenden den Vorgang) und "SLEEP nnn" (wartet "nnn" Sekunden) verwendet.
- X
- XMakros lassen sich auch in der Kommandozeile definieren. Es genuegt eine
- Xgueltige Vereinbarung inzugeben (siehe oben) - sie wird automagisch in
- Xdie Makro-Sammlung aufgenommen.
- X
- X#MINIX
- XBefehl "Minix" ("execute")
- X
- XMit entsprechendem LEVEL kann man mit dem Befehl "Minix OS-BEFEHL" ein
- XKommando auf Betriebssystem-Ebene ausfuehren.
- X
- XZ.B. "Minix date", "Minix whodo", "Minix ps -lax"
- X
- X#OUTDIAL
- XBefehl "Outdial"
- X
- XEine Verbindung zu externen Datenbanken und Mailboxen kann mit diesem
- XBefehl hergestellt werden.
- X
- XDieser Service befindet sich im Teststadium. Entsprechende Berechtigungen
- Xund weitere Informationen gibt's beim Sysop.
- X
- X#PM
- XBefehl "PM"
- X
- XDie oeffentlichen Bretter werden verlassen und das persoenliche Postfach
- Xgeoeffnet. Die Befehle INHALT, LESEN, LOESCHEN beziehen sich nun auf das
- XPostfach.
- X
- X#PORTINFO
- XBefehl "Portinfo" ("Wer")
- X
- XDas System holt sich Informationen ueber die Taetigkeit aller Teilnehmer und
- Xzeigt sie zusammen mit Name, Terminal-Port und Login-Zeit an. Ist der
- XTeilnehmer in der MBox aktiv, wird ausserdem sein letzter Befehl angezeigt,
- Xbei SH-Usern wird der aktuellste Prozess angezeigt.
- X
- X#POSTFACH
- XBefehl "Postfach"
- X
- XUm persoenliche Post erhalten zu koennen, und um an die externen Bretter
- Xsenden zu duerfen, muss das System einen "Account" einrichten. Sie werden
- Xgebeten Ihren Namen und einige pers. Daten anzugeben. Wenn Sie nur inner-
- Xhalb der Box Post u. Nachrichten versenden wollen, genuegt der Name. Falls
- XSie aber auch an die extrenen Bretter senden wollen, und PMs an User auf
- Xanderen Rechnern verschicken wollen, MUSS auch die Anschrift stimmig ange-
- Xgeben werden ...
- X
- X#RICHTUNG
- XBefehl "Richtung"
- X
- XMit diesem Befehl kann die Leserichtung beeinflusst werden. D.h. ob zuerst
- Xdie aeltern, oder die neuer Artikel angezeigt werden sollen. Diese Einstellung
- Xgilt sowohl fuer den Befehl "Lesen" als auch fuer den Befehl "Inhalt".
- XMit dem Befehl "Setup" kann (im Untermenue "Textausgabe") die Leserichtung
- Xgespeichert werden.
- X
- XACHTUNG: der Befehl "Richtung" setzt die im SETUP gespeicherte Vorgabe zwar
- X fuer die Dauer der Session ausser Kraft, beim naechsten Login aber,
- X wird der Vorgabewerte wieder aktiviert.
- X
- X#SCHREIBEN
- XBefehl "Schreiben"
- X
- XEin neuer Artikel kann mit diesem Befehl an eines der Bretter gesendet werden.
- XVor der eigentlichen Eingabe werden noch "Subject" (das Thema des Artikels)
- Xund "Keywords" (falls mal nach bestimmten Schluesselworten gesucht werden
- Xsollte) abgefragt. Anschliessend wird der Editor zur Erfassung gestartet.
- X
- XJe nach Brett und Userlevel wird der Artikel nach Beendigung der Eingabe
- Xentweder nur lokal verbreitet, oder aber an eines der UUCP-Netze verschickt.
- X
- X#SETUP
- XBefehl "Setup" ("Anschrift", "Ansi", "Bell", "More", "Terminal", "Passwort")
- X
- XIhre persoenlichen Daten und System-Parameter koennen mit diesem Befehl
- Xbearbeitet werden.
- X
- XTerminal: Sie haben die Wahl zwischen drei Terminal-Emulation und einer
- X reinen Dump-Ausgabe. Vorzuziehen ist die "ANSI"-Einstellung, weil
- X sie von allen gaengigen Terminal-Programmen unterstuetzt wird.
- X
- XEditor: Es werden einige Editoren angeboten, deren Einsatz vom gewaehlten
- X Terminaltyp abhaengig ist. GAESTE und User ohne SH-Account arbeiten
- X generell mit einen zeilenorientierten Editor (LED).
- X
- XPrompt: Der Prompt (die Eingabeaufforderung) kann verschiedene Informationen
- X ausgeben. Entweder das aktuelle Brett, die Uhrzeit oder die ver-
- X brauchten Telefongebuehren (ACHTUNG: Feiertage werden NICHT berueck-
- X sichtigt, Wechseln zwischen Norm- und Billigtarif waehrend der
- X Verbindung wird NICHT registriert ... es gilt immer der Tarif zur
- X Anzeigezeit).
- X
- XAusgabe: Texte koennen entweder bildschirmweise, oder kontinuierlich ausge-
- X geben werden. Bei der ersten Methode wird mit der LEERTASTE weiter-
- X geblaettert, die Tasten "q" o. "Q" beenden die Ausgabe. Die konti-
- X nuierliche Ausgabe wird mit CTRL-S gestoppt und mit CTRL-Q
- X wieder aufgenommen. Mit CTRL-X (oder DEL) kann die Ausgabe abge-
- X brochen werden.
- X
- X Ausserdem kann an dieser Stelle die Leserichtung vorgegegben werden.
- X D.h. es wird entschieden, ob zuerst die aelteren, oder zuerst die
- X neueren Artikel angezeigt werden sollen.
- X
- XAnschrift: Persoenliche Daten wie (User-)Name, Anschrift etc. koennen mit
- X dieser Option geandert werden. Je detailierter die Angaben, desto
- X ehr wird eine Schreibberechtigung fuer extrene Bretter vergeben.
- X
- XPasswort: Das Passwort sollte regelmaessig geandert werden, um die persoenl.
- X Daten und die Post zu schuetzten.
- X
- XIntro: Nach dem Anmelden im System kann man sich eine Statusmeldung und
- X eine aktuelle Information anzeigen lassen. Beide Anzeigen koennen
- X getrennt unterbunden werden.
- X
- XScanner: Hier kann das Datum geaendert werden, das bei der Bestimmung
- X aktueller Eintraege zugrunde gelegt wird. Je weiter zurueckdatiert
- X wird, desto mehr Eintraege werden angezeigt. Ausserdem kann man
- X zusaetzlich die Uhrzeit als Vergleichswert einsetzen.
- X
- X#SPIELE
- XBefehl "Spiele"
- X
- XEine Liste der ONLINE-Spiele wird angezeigt. Die Spiele verwenden z.T.
- XTerminal-Emulationen - also ACHTUNG! Fast alle Spiele lassen sich mit
- X"Q" oder "q" beenden.
- X
- X#STATUS
- XBefehl "Status"
- X
- XIhre persoenlichen Daten und Einstellungen werden angezeigt. Dazu zaehlen
- Xauch Angaben ueber Up- und Downloads, Onlinezeit und die UUCP-Adressen.
- X
- X#STATISTIK
- XBefehl "Statistik"
- X
- XEin Statistik der versch. Bretter (NGs) und deren aktueller Inhalt wird
- Xangezeigt. Mit der Option "*" wird die komplette Ausgabe der Statistik
- Xbefohlen, und mit "$" kann eine Uebersicht der (Transfer-)Telefongebuehren
- Xabgefragt werden. Ausserdem laesst sich mit "#" ein Protokoll der Down-
- Xloads aus den versch. PD-Brettern abrufen. Wird stattdessen ein "%" angegeben,
- Xerfolgt eine Auswertung der Downloads. Das Ergebnis wird als "Hitliste"
- Xausgegeben.
- X
- X#SUCHEN
- XBefehl "Suchen"
- X
- XAlle (!) Artikel eine Brettes werden nach dem optional anzugebenden Such-
- Xmuster durchsucht. Die Artikel, die das Suchmuster enthalten, werden
- Xangezeigt.
- X
- X#SYSINFO
- XBefehl "Sysinfo"
- X
- XEinfach ausprobieren :-)
- X
- X#UPLOAD
- XBefehl "Upload"
- XDiesen Befehl gibt es NICHT. Der Befehl "Schreiben" bietet als Option
- Xden Upload an. Programm-Daten werden automatisch erkannt und entsprechend
- Xverarbeitet.
- X
- X#UNTERSCHRIFT
- XBefehl "Unterschrift"
- X
- XAlle Texte, die sie in dieser MBox schreiben, werden mit der "Unterschrift"
- Xbeendet. Sie koennen hier z.B. Ihre Anschrift, Ihre E-Mail Adresse oder
- Xeinen Spruch (Disclaimer) eingeben. Fuer UNIX-Kenner: der Befehl entspricht
- Xder ".signature". Ein Beispiel:
- X
- X-----------------------------------------------------------------------------
- XDAS MENSCHLICHE AN COMPUTERN Volker Schuermann,D-5600 Wpt.21,Monhofsfeld 70
- XIST IHRE GEWISSENLOSIGKEIT ! DATA +49 202 4660234 DATA +49 202 462114
- X-----------------------------------------------------------------------------
- X
- X#USER
- XBefehl: "User" ("Teilnehmer")
- X
- XSie erhalten eine Liste der Teilnehmer in diesem MBox-System. Der Wert, der
- Xdem Namen folgt (z.B. "J. Random Looser (24)"), zeigt die UserID. Je niedriger
- Xdie Nummer, desto laenger ist der User eingtragen - jede Nummer wird nur
- Xeinmal vergeben.
- X
- XWird als Argument ein "*" angehaengt, gibt die MBox eine detailierte Liste aus,
- Xdie z.B. den letzen Anruf der jeweiligen User, das Userlevel etc. enthaelt.
- X
- XDetailierte Informationen ueber einzelnen User erhaelt man, wenn man als
- XOption den Namen ("Vorname Name", "Alias", "Shell-Account") angibt.
- X
- X#VERSION
- XBefehl: "Version"
- X
- XDie aktulle Versionnummer wird angezeigt. Sollten Sie einmal einen Fehler
- Xim Programm finden, geben Sie diese Nummer bei Ihrer Fehlerbeschreibung
- Xbitte an.
- X
- Xix/Mbox 0.8.2 by <volkers@unnet.ruhr.sub.org>
- X =====
- X
- XDie Fehlerberschreibung sende Sie per E-Mail an die Anschrift "<volkers@...>".
- X
- XMit der "Version #"-Option wird die MBox angwiesen eine Liste begabter Leute
- Xauszugeben, die massgeblich an der Entwicklung dieses Programms beteiligt
- Xwaren.
- X
- X#WEITERLEITEN
- XBefehl: "Weiterleiten"
- X
- XBriefe und Artikel koennen an andere Teilnehmer weitergeleitet werden. Dabei
- Xgilt folgende Schreibweise:
- X
- X"Weiterleiten" Der Betreff der zuletzt geschriebenen PM (!) wird
- X angezeigt. Diese PM kann weitergeleitet werden.
- X
- X"Weiterleiten USER" Die zuletztgeschrieben PM wird an den Teilnehmer
- X USER geschickt.
- X
- X"Weiterleiten NNN USER" Der Artikel/Brief NNN wird an den Teilnehmer USER
- X gesendet.
- X
- XDie Briefe/Artikel koennen vor dem Versand ueberarbeitet werden. Die Syntax
- Xist VERBINDLICH, es darf immer nur EIN Empfaenger angegeben werden.
- X
- XUSER kann ein lokaler Teilnehmer, ein User auf einem anderen Rechner, oder
- Xaber der eigene SH-Account sein:
- X
- X"Weiterleiten Volker"
- X"Weiterleiten volkers@xenox.ruhr.de",
- X"Weiterleiten unnet!volkers"
- X
- X
- END_OF_FILE
- if test 18178 -ne `wc -c <'etc/help.hilfe'`; then
- echo shar: \"'etc/help.hilfe'\" unpacked with wrong size!
- fi
- # end of 'etc/help.hilfe'
- fi
- if test -f 'src/pd.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'src/pd.c'\"
- else
- echo shar: Extracting \"'src/pd.c'\" \(18063 characters\)
- sed "s/^X//" >'src/pd.c' <<'END_OF_FILE'
- X/***************************************************************************/
- X/* PROGRAMM ix/Mbox */
- X/* DATEI pd.c */
- X/* FUNKTIONEN pd(), download(), status(), mkix(), statistik() */
- X/* AUTOR vs (Volker Schuermann/MINIX-Version) */
- X/* LETZTE AENDERUNG 27.06.1992 */
- X/***************************************************************************/
- X
- X#include <stdio.h>
- X#include <sys/types.h>
- X#include <signal.h>
- X#include <sys/stat.h>
- X#include <time.h>
- X
- X#include "mbox.h"
- X
- X
- X/***************************************************************************/
- X/* FUNKTION pd() */
- X/* BESCHREIBUNG Eine Datei wird mit o. ohne Protokoll uebertragen. */
- X/* Diese Funktion wird von "lesen()" oder "pruefe()" */
- X/* aufgerufen, wenn die zu bearbeitende Datei den Kenn- */
- X/* zeichner "BINFILE" enthaelt. */
- X/* PARAMETER arg = Dateiname */
- X/* RUECKGABE keine */
- X/***************************************************************************/
- X
- Xvoid pd(arg, keywds)
- Xchar arg[], keywds[];
- X{
- X FILE *fp;
- X FILE *ff;
- X
- X char s[STRING];
- X char tmp[STRING];
- X char c;
- X char protokoll;
- X char cd[STRING];
- X struct stat fst;
- X long ts, tn;
- X
- X int cps, bps, eff;
- X int ok, i;
- X
- X strcpy(cd, stripped(arg));
- X
- X printf("\n\n");
- X ansi("md");
- X printf("%s\n\n", PD01_MSG);
- X
- X if(keywds[0] != '\0'){
- X printf("%s ", PD02_MSG);
- X ansi("me");
- X printf("%s\n\n", keywds);
- X }
- X else{
- X ansi("me");
- X }
- X
- X ansi("mr");
- X printf("%c%s [%c, %c, (%c)] > ", CR, PD03_MSG, GBL06_MSG, GBL07_MSG, PD06_MSG);
- X ansi("me");
- X
- X do {
- X c = getint();
- X if (c >= 97) c -= 32;
- X if ((c != GBL06_MSG) && (c != GBL07_MSG) && (c != PD06_MSG)) c = 0;
- X } while (c == 0);
- X
- X printf("%c", c);
- X
- X if (c == PD06_MSG) { /* X */
- X printf("\n");
- X sigcatch(SIGINT);
- X }
- X
- X if (c != GBL06_MSG) { /* J */
- X printf("\n");
- X return;
- X }
- X ansi("mr");
- X printf("%c[%s] %c, %c, %c, %c ? > ", CR, PD07_MSG, PD08_MSG, PD09_MSG, PD10_MSG, PD11_MSG);
- X ansi("me");
- X
- X
- X do {
- X protokoll = getint();
- X if (protokoll >= 97) protokoll -= 32;
- X if (protokoll == '?') {
- X clearline();
- X ansi("mr");
- X printf("%c%s > ", CR, PD12_MSG);
- X ansi("me");
- X }
- X if ((protokoll != PD08_MSG) && (protokoll != PD09_MSG) &&
- X (protokoll != PD10_MSG) && (protokoll != PD11_MSG))
- X protokoll = 0;
- X } while (protokoll == 0);
- X
- X
- X printf("%c", protokoll);
- X
- X signal(SIGINT, SIG_IGN);
- X signal(SIGHUP, SIG_IGN);
- X signal(SIGQUIT, SIG_IGN);
- X signal(SIGABRT, SIG_IGN);
- X signal(SIGTERM, SIG_IGN);
- X
- X printf("\n\n");
- X ansi("md");
- X printf("%s\n\n", PD13_MSG);
- X ansi("me");
- X
- X time(&ts);
- X
- X switch (protokoll) {
- X case PD08_MSG:
- X sprintf(s, "exec cat %s", cd);
- X break;
- X case PD09_MSG:
- X sprintf(s, "exec %s -b %s 2> /dev/null", SX, cd);
- X break;
- X case PD10_MSG:
- X sprintf(s, "exec %s %s 2> /dev/null", SB, cd);
- X break;
- X case PD11_MSG:
- X sprintf(s, "exec %s %s 2> /dev/null", SZ, cd);
- X break;
- X }
- X system( s );
- X
- X time(&tn); tn = tn - ts;
- X
- X stat(cd, &fst);
- X USER.downratio += ((long) fst.st_size / 1024);
- X
- X ansi( "md" );
- X
- X if(tn < 1) tn = 1;
- X cps = fst.st_size / tn;
- X bps = cps * 11;
- X
- X BAUDRATE = baudrate( bps );
- X
- X eff = ((100000 / BAUDRATE) * bps) / 1000;
- X
- X if(bps > BAUDRATE){
- X printf("\n\n%s\n", PD14_MSG);
- X ok = -1;
- X }
- X else{
- X printf("\n\n%ld %s.\n", fst.st_size, PD15_MSG);
- X ok = 0;
- X }
- X
- X ansi( "me" );
- X printf("%s %d cps (ca. %d bps).", PD16_MSG, cps, bps);
- X sprintf(tmp, "%s/%d.pd", TMP, getpid());
- X ff = fopen( tmp, "w" );
- X
- X
- X if(ok == 0){
- X fprintf(ff, "%s %c %-40.40s", mydate( 1 ), protokoll, cd);
- X if(bps < BAUDRATE){
- X fprintf(ff, " %6.d %6.d %2.d%% OK\n", cps, bps, eff);
- X }
- X else{
- X fprintf(ff, " %6.d %6.d %2.d%% BRK\n", cps, bps, eff);
- X }
- X }
- X else{
- X /*
- X fprintf(ff, "%s %c %-40.40s", mydate( 1 ), protokoll, cd);
- X fprintf(ff, " %6.6d %6.6d %s\n", cps, bps, PD17_MSG);
- X */
- X }
- X
- X i = 0;
- X
- X fp = fopen( PDLOG, "r" );
- X if(fp != NULL){
- X while((fgets(s, 80, fp) != NULL) && (i < PRO_ENTRIES)){
- X fputs(s, ff);
- X i++;
- X }
- X fclose(fp);
- X }
- X
- X fclose(ff);
- X
- X sprintf(cd, "mv %s %s", tmp, PDLOG);
- X system( cd );
- X
- X printf("\n");
- X}
- X
- X
- X
- X
- X/***************************************************************************/
- X/* FUNKTION status */
- X/* BESCHREIBUNG Verschiedene (eigentlich fast alle) Eintraege aus den */
- X/* Teilnehmerdaten werden angezeigt. */
- X/* PARAMETER keine */
- X/* RUECKGABE keine */
- X/***************************************************************************/
- X
- Xvoid status()
- X{
- X char s[STRING];
- X char t[STRING];
- X char d[STRING];
- X char ex[255];
- X int a, b;
- X int i;
- X
- X
- X sprintf(s, " %s %d ) %s ", PD18_MSG, USER.id, USER.name);
- X headline(s);
- X printf("\n");
- X
- X ansi("md");
- X printf("%s", PD19_MSG);
- X ansi("me");
- X
- X printf("\n");
- X
- X sprintf(ex, "%s ", USER.name);
- X ex[27] = '\0';
- X strcat(ex, USER.nick);
- X strcat(ex, " ");
- X ex[45] = '\0';
- X strcat(ex, USER.geburtsdatum);
- X strcat(ex, " ");
- X ex[62] = '\0';
- X strcat(ex, USER.telefon1);
- X printf("%s\n", ex);
- X
- X sprintf(ex, "%s ", USER.strasse);
- X ex[27] = '\0';
- X strcat(ex, USER.sh_name);
- X strcat(ex, " ");
- X ex[45] = '\0';
- X strcat(ex, " ");
- X ex[62] = '\0';
- X strcat(ex, USER.telefon2);
- X printf("%s\n", ex);
- X
- X printf("%s\n\n", USER.wohnort);
- X ansi("md");
- X printf("%s", PD20_MSG);
- X ansi("me");
- X printf("\n");
- X
- X s[0] = '\0'; strcat(s, datereconv( LASTLOG ));
- X strcat(s, "-"); strcat(s, timereconv( LASTTIME ));
- X s[16] = '\0';
- X
- X sprintf(ex, " %1d %1d %5d %1d %1d %1d %1d %6d %s",
- X USER.terminal, USER.editor, USER.level, USER.bell, USER.prompt, USER.more, USER.intro, USER.seq, s);
- X printf("%s\n\n", ex);
- X
- X ansi("md");
- X printf("%s", PD21_MSG);
- X ansi("me");
- X sprintf(ex, "\n%06.6d %06.6d %06.6d",
- X (USER.elapsed / 60), USER.upratio, USER.downratio);
- X printf("%s\n\n", ex);
- X
- X ansi("md");
- X printf("%s", PD22_MSG);
- X ansi("me");
- X
- X i = 0;
- X strcpy(s, (char *) USER.name);
- X while (s[i] != '\0') {
- X if (s[i] == ' ') s[i] = '.';
- X i++;
- X }
- X
- X sprintf(t, "%s: %s@%s", PD23_MSG, s, UUCPID);
- X strcpy(d, USER.account); d[10] = '\0';
- X strcpy(s, (char *) strcopy(USER.account, 11, 16));
- X i = atoi(s);
- X sprintf(s, "%s %3d.%02d", d, fix(i), flt(i));
- X sprintf(ex, "%-54.54s%s DM\n%s: %s%s", t, s, PD24_MSG, UUCPBANG, USER.nick);
- X printf("\n%s\n", ex);
- X if (USER.sh_name[0] != '\0')
- X printf("%s: %s!%s\n", PD25_MSG, UUCPSITE, USER.sh_name);
- X
- X printf("\n");
- X
- X ansi("md");
- X printf("%s\n", PD26_MSG);
- X
- X ansi("me");
- X
- X i = 1;
- X while(newsgrp[i][0] != '\0'){
- X if(i != 1) printf(", ");
- X printf("%s", newsgrp[i]);
- X i++;
- X }
- X
- X printf("\n\n");
- X}
- X
- X
- X
- X/***************************************************************************/
- X/* FUNKTION mkix() */
- X/* BESCHREIBUNG Wandelt eine Datei ins UNIX-Format (CRs werden entfernt) */
- X/* PARAMETER s = Dateiname */
- X/* RUECKGABE keine */
- X/***************************************************************************/
- X
- Xvoid mkix( pfad )
- Xchar pfad[];
- X{
- X FILE *fp;
- X FILE *ff;
- X
- X char s[255];
- X char p[255];
- X
- X int i, ok = 0;
- X
- X
- X sprintf(p, "%sabc", pfad);
- X
- X fp = fopen( pfad, "r" );
- X if(fp == NULL){
- X return;
- X }
- X
- X ff = fopen( p, "w" );
- X if(ff == NULL){
- X nerror("pd.c", 243, "mkix", "Datei-Erstellungsfehler", p);
- X }
- X
- X while((ok == 0) && (fgets(s, 254, fp) != NULL)){
- X i = 0;
- X while(s[i] != '\0'){
- X if(s[i] == CTRL_Z){
- X ok++;
- X break;
- X }
- X i++;
- X }
- X if(ok == 0){
- X i = strlen(s) -2;
- X if(s[i] == CR){
- X s[i] = LF;
- X s[i +1] = '\0';
- X }
- X fputs(s, ff);
- X }
- X }
- X fclose(fp);
- X fclose(ff);
- X
- X unlink(pfad);
- X rename(p, pfad);
- X}
- X
- X
- X
- X/***************************************************************************/
- X/* FUNKTION statitik() */
- X/* BESCHREIBUNG Anrufer-Protokoll auswerten */
- X/* PARAMETER keine */
- X/* RUECKGABE keine */
- X/***************************************************************************/
- X
- Xvoid statistik()
- X{
- X FILE *fp;
- X
- X struct tm *tp;
- X time_t tt;
- X
- X char s[STRING];
- X char od[MAX_TAGE][STRING];
- X char t[STRING];
- X char r[STRING];
- X
- X int v18u[MAX_TAGE];
- X int n18u[MAX_TAGE];
- X int v18g = 0;
- X int n18g = 0;
- X
- X int zeit = 0;
- X int tage = 0;
- X int max = 0;
- X
- X int i, a;
- X int toggle = 0;
- X int sun;
- X
- X fp = fopen( CALLS, "r" );
- X if(fp == NULL){
- X nerror("pd.c", 288, "statistik", "Datei-Lesefehler", CALLS);
- X }
- X
- X od[0][0] = '\0';
- X
- X headline( PD27_MSG );
- X printf("%s\n", PD28_MSG);
- X printf("===============================================================================\n");
- X
- X while((fgets(s, (STRING *2), fp) != NULL) && (tage < (MAX_SCR_LINES -7))){
- X strcpy(t, (char *) strcopy(s, 64, 71));
- X
- X if(strcomp(t, od[tage]) != 0){
- X if(tage != 0){
- X if((v18u[tage] + n18u[tage]) > max){
- X max = v18u[tage] + n18u[tage];
- X }
- X v18g += v18u[tage];
- X n18g += n18u[tage];
- X }
- X tage++;
- X od[tage][0] = '\0'; strcat(od[tage], t);
- X v18u[tage] = 0;
- X n18u[tage] = 0;
- X }
- X zeit = atoi(strcopy(s, 74, 75));
- X if((zeit > 6) && (zeit < 18)) v18u[tage]++;
- X if((zeit >= 18) || (zeit <= 6)) n18u[tage]++;
- X }
- X
- X sprintf(s, "%s", "ooooooooooooooooooooooooooooooooooooooooooooooooooooo");
- X
- X time(&tt);
- X tp = localtime(&tt);
- X sun = tp->tm_wday;
- X
- X for(i = 1; i < tage; i++){
- X sprintf(t, "%s", s);
- X a = (290 / max * (v18u[i] + n18u[i])) / 10;
- X t[a] = '\0';
- X strcpy(r, " ");
- X if(sun == 0){
- X strcpy(r, PD29_MSG);
- X toggle++;
- X ansi( "md" );
- X }
- X if(sun == 6)
- X strcpy(r, PD30_MSG);
- X sun--;
- X if(sun == -1) sun = 6;
- X
- X printf("%s %s %4.d %5.d %5.d %s\n",
- X od[i], r, v18u[i], n18u[i], v18u[i]+n18u[i], t);
- X if(toggle != 0) ansi( "me" );
- X toggle = 0;
- X }
- X
- X printf("-------------------------------------------------------------------------------\n");
- X printf("%s %5.d %5.d %5.d %s\n",
- X PD31_MSG, v18g, n18g, v18g+n18g, PD32_MSG);
- X printf("===============================================================================\n");
- X
- X printf("\n%s %d %s.\n", PD33_MSG, (tage -1), PD34_MSG);
- X
- X fclose(fp);
- X}
- X
- X
- X
- X
- X
- X/***************************************************************************/
- X/* FUNKTION archivieren() */
- X/* BESCHREIBUNG Archivierer auswaehlen und Dateien packen */
- X/* PARAMETER arg = artikel-liste */
- X/* RUECKGABE Names des Archivs */
- X/***************************************************************************/
- X
- Xchar *archivieren( arg )
- Xchar arg[];
- X{
- X FILE *fp;
- X int i, c;
- X
- X struct stat fstat;
- X
- X char s[LONGSTRING+STRING];
- X char t[STRING];
- X char packers[10][STRING];
- X char adds[10][STRING];
- X char tar[10][STRING];
- X char en[10][STRING];
- X char cd[LONGSTRING];
- X
- X int fpid;
- X
- X
- X headline( PD37_MSG );
- X printf("\n");
- X
- X sprintf(s, "%s/%s", HOME, PACKERS);
- X fp = fopen(s, "r");
- X if (fp == NULL) {
- X nerror("pd.c", 495, "archivieren", "Datei-Lesefehler", s);
- X }
- X i = 0;
- X while((fgets(s, 80, fp) != NULL) && (s[0] == '/'));
- X while((i < 10) && (fscanf(fp, "%s %s %s %s %s", s, packers[i], adds[i], tar[i], en[i]) > 0)){
- X i++;
- X printf(" %d - %s\n\n", i, s);
- X }
- X fclose(fp);
- X
- X ansi("md");
- X printf("\n%s > ", PD38_MSG);
- X ansi("me");
- X
- X c = getint();
- X if(c > 32) printf("%c", c);
- X c -= 49;
- X
- X if(c > i) return (char *) "Noe!";
- X
- X
- X printf("\n\n%s .", PD39_MSG);
- X
- X switch( (fpid = fork()) ){
- X case -1 :
- X break;
- X case 0 :
- X while(1){
- X printf(".");
- X sleep(2);
- X }
- X break;
- X }
- X
- X strcpy(cd, (char *) arg);
- X
- X if(tar[c][0] != '-'){
- X sprintf(t, "DNL%s.tar", mytime(1));
- X t[5] = 'Z';
- X sprintf(s, "exec %s %s %s > /dev/null 2>&1", TAR, t, cd);
- X system( s );
- X strcpy(cd, (char *) t);
- X }
- X else{
- X sprintf(t, "DNL%s", mytime(1));
- X t[5] = 'Z';
- X }
- X
- X if(adds[c][0] == '?')
- X sprintf(s, "exec %s %s > /dev/null 2>&1", packers[c], cd);
- X else
- X sprintf(s, "exec %s %s %s %s > /dev/null 2>&1", packers[c], adds[c], t, cd);
- X
- X system( s );
- X
- X unlink( t );
- X
- X strcat(t, (char *) en[c]);
- X
- X kill( fpid, SIGKILL );
- X (void) wait( &fpid );
- X
- X clearline();
- X
- X if(tar[c][0] != '-'){
- X ansi( "md" );
- X printf( PD40_MSG );
- X ansi( "me" );
- X printf("%s\n", PD41_MSG);
- X }
- X
- X stat(t, &fstat);
- X printf("%s \"%s\" %s %ld %s.", PD42_MSG, t, PD43_MSG, fstat.st_size, PD44_MSG);
- X
- X return (char *) t;
- X}
- X
- X
- X
- X/***************************************************************************/
- X/* FUNKTION download() */
- X/* BESCHREIBUNG Text- und Binaerartikel uebertragen */
- X/* PARAMETER arg = artikel[-artikel] */
- X/* RUECKGABE keine */
- X/***************************************************************************/
- X
- X#define MAX_DL_FILES 20
- X
- Xvoid download( arg )
- Xchar arg[];
- X{
- X int i, k, l, m;
- X int von, bis;
- X int ALLE;
- X int protokoll, ok;
- X int cps, bps, eff;
- X
- X long ts, tn;
- X long bytes_total = 0L;
- X
- X struct stat fst;
- X
- X char s[STRING];
- X char cd[LONGSTRING];
- X char t[(LONGSTRING+STRING)];
- X char tmp[STRING];
- X
- X char files[MAX_DL_FILES][STRING];
- X int mdlp = 1;
- X
- X int art[MAX_PER_NG];
- X int artp = 0;
- X int lastart;
- X
- X int havetokill = 0;
- X
- X
- X FILE *fp, *ff;
- X
- X
- X tmp[0] = '\0';
- X
- X i = 0;
- X k = -1;
- X l = -1;
- X m = -1;
- X
- X while (arg[i] != '\0') {
- X if (arg[i] == '-') k = i;
- X if (arg[i] == '*') l = i;
- X if ((arg[i] > 48) && (arg[i] < 58) && (m == -1)) m = i;
- X i++;
- X }
- X
- X von = 1;
- X bis = 32000;
- X
- X if ((m == -1) && (l == -1) && (k == -1)) {
- X return;
- X }
- X
- X if ((m != -1) && (l == -1) && (k == -1)) {
- X strcpy(s, (char *) strcopy(arg, m, length(arg)));
- X von = atoi(s);
- X bis = von;
- X }
- X if (k != -1) {
- X strcpy(s, (char *) strcopy(arg, 0, (k - 1)));
- X von = atoi(s);
- X strcpy(s, (char *) strcopy(arg, (k + 1), length(arg)));
- X bis = atoi(s);
- X
- X if (von == 0) von = 1;
- X if (bis == 0) bis = 32000;
- X }
- X
- X if(von > bis){
- X i = bis;
- X bis = von;
- X von = i;
- X }
- X
- X maybe_locked(INHALT, "r");
- X fp = fopen(INHALT, "r");
- X if (fp == NULL) {
- X nerror("pd.c", 504, "download", "Datei-Lesefehler", INHALT);
- X }
- X while (fgets(cd, 250, fp) != NULL){
- X i = atoi(cd);
- X if((i >= von) && (i <= bis)){
- X art[artp] = i;
- X artp++;
- X if(artp > MAX_PER_NG){
- X printf("This is a known bug ;-)");
- X exit(0);
- X }
- X }
- X }
- X fclose(fp);
- X
- X
- X printf("\n\n");
- X
- X ansi("mr");
- X printf("%c[%s] %c, %c, %c, %c ? > ", CR, PD07_MSG, PD08_MSG, PD09_MSG, PD10_MSG, PD11_MSG);
- X ansi("me");
- X
- X
- X do {
- X protokoll = getint();
- X if (protokoll >= 97) protokoll -= 32;
- X if (protokoll == '?') {
- X clearline();
- X ansi("mr");
- X printf("%c%s > ", CR, PD12_MSG);
- X ansi("me");
- X }
- X if ((protokoll != PD08_MSG) && (protokoll != PD09_MSG) &&
- X (protokoll != PD10_MSG) && (protokoll != PD11_MSG))
- X protokoll = 0;
- X } while (protokoll == 0);
- X
- X
- X printf("%c", protokoll);
- X
- X if (strcomp(BRETT, "PM") != 0) {
- X sprintf(s, "%s", BRETT);
- X }
- X else {
- X sprintf(s, "%s/usr/%d", HOME, USER.id);
- X }
- X chdir( s );
- X
- X cd[0] = '\0';
- X printf("\n\n%s .", PD36_MSG);
- X
- X lastart = artp;
- X
- X for( i = 0; i < artp; i++){
- X
- X sprintf(s, "%d", art[i]);
- X
- X fp = fopen(s, "r");
- X if(fp != 0){
- X printf(".");
- X
- X while ((fgets(t, 250, fp) != NULL) && (t[0] > 32));
- X while ((fgets(t, 250, fp) != NULL) && (t[0] < 32));
- X
- X ok = 0;
- X
- X if (strcomp("BINFILE", t) == 0) {
- X fgets(t, 80, fp);
- X strcpy(s, (char *) stripped(t));
- X ok++;
- X }
- X if(((2 + strlen(s) + strlen(cd)) < LONGSTRING) && (mdlp < MAX_DL_FILES)){
- X stat(s, &fst);
- X bytes_total += (long) fst.st_size;
- X
- X if(ok != 0){
- X strcpy(files[mdlp], s);
- X mdlp++;
- X USER.downratio += ((long) fst.st_size / 1024);
- X }
- X
- X strcat(cd, s);
- X strcat(cd, " ");
- X lastart = i;
- X }
- X fclose(fp);
- X }
- X }
- X
- X if(cd[0] == '\0'){
- X ansi("md");
- X printf("%c%s\n", CR, PD35_MSG);
- X ansi("me");
- X chdir( HOME );
- X return;
- X }
- X
- X if((protokoll != PD08_MSG) && (strcomp(PDNG, NG) != 0)){
- X strcpy(s, (char *) archivieren( cd ));
- X if(strcomp("Noe!", s) != 0){
- X strcpy(cd, (char *) s);
- X havetokill++;
- X }
- X }
- X
- X signal(SIGINT, SIG_IGN);
- X signal(SIGHUP, SIG_IGN);
- X signal(SIGQUIT, SIG_IGN);
- X signal(SIGABRT, SIG_IGN);
- X signal(SIGTERM, SIG_IGN);
- X
- X printf("\n\n");
- X ansi("md");
- X printf("%s\n\n", PD13_MSG);
- X ansi("me");
- X
- X time(&ts);
- X
- X switch (protokoll) {
- X case PD08_MSG:
- X sprintf(t, "exec cat %s", cd);
- X break;
- X case PD09_MSG:
- X sprintf(t, "exec %s -b %s 2> /dev/null", SX, cd);
- X break;
- X case PD10_MSG:
- X sprintf(t, "exec %s %s 2> /dev/null", SB, cd);
- X break;
- X case PD11_MSG:
- X sprintf(t, "exec %s %s 2> /dev/null", SZ, cd);
- X break;
- X }
- X system( t );
- X
- X if(havetokill != 0) unlink( cd );
- X
- X time(&tn); tn = tn - ts;
- X
- X chdir( HOME );
- X
- X ansi( "md" );
- X
- X if(tn < 1) tn = 1;
- X cps = bytes_total / tn;
- X bps = cps * 11;
- X
- X BAUDRATE = baudrate( bps );
- X
- X eff = ((100000 / BAUDRATE) * bps) / 1000;
- X
- X if(bps > BAUDRATE){
- X printf("\n\n%s\n", PD14_MSG);
- X ok = -1;
- X }
- X else{
- X printf("\n\n%ld %s.\n", fst.st_size, PD15_MSG);
- X ok = 0;
- X }
- X
- X ansi( "me" );
- X printf("%s %d cps (ca. %d bps).", PD16_MSG, cps, bps);
- X
- X
- X if(ok != -1){
- X
- X sprintf(tmp, "%s/%d.pd", TMP, getpid());
- X ff = fopen( tmp, "w" );
- X
- X for(i = 1; i < mdlp; i++){
- X fprintf(ff, "%s %c %-40.40s", mydate( 1 ), protokoll, files[i]);
- X fprintf(ff, " %6.d %6.d %2.d%% DNL\n", cps, bps, eff);
- X }
- X
- X i = 0;
- X
- X fp = fopen( PDLOG, "r" );
- X if(fp != NULL){
- X while((fgets(s, 80, fp) != NULL) && (i < PRO_ENTRIES)){
- X fputs(s, ff);
- X i++;
- X }
- X fclose(fp);
- X }
- X
- X fclose(ff);
- X
- X sprintf(cd, "mv %s %s", tmp, PDLOG);
- X system( cd );
- X }
- X else{
- X if(ff != 0) fclose(ff);
- X if(tmp[0] != '\0') unlink(tmp);
- X }
- X
- X if(lastart != (artp-1)){
- X ansi( "md" );
- X printf("\n%s", PD40_MSG);
- X ansi( "me" );
- X printf("%s %d %s %d %s!", PD45_MSG, art[0], PD46_MSG, art[lastart], PD47_MSG);
- X }
- X
- X printf("\n\n");
- X}
- X
- X
- END_OF_FILE
- if test 18063 -ne `wc -c <'src/pd.c'`; then
- echo shar: \"'src/pd.c'\" unpacked with wrong size!
- fi
- # end of 'src/pd.c'
- fi
- echo shar: End of archive 6 \(of 11\).
- cp /dev/null ark6isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 11 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still must unpack the following archives:
- echo " " ${MISSING}
- fi
- exit 0
- exit 0 # Just in case...
-