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

  1. Newsgroups: comp.sources.misc
  2. From: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
  3. Subject:  v29i064:  mbox - A Bulletin Board System for UNIX and MINIX, Part02/10
  4. Message-ID: <1992Apr5.183306.29392@sparky.imd.sterling.com>
  5. X-Md4-Signature: 557d9bb10089065ed8f9e0f5b5ece0e1
  6. Date: Sun, 5 Apr 1992 18:33:06 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: Volker.Schuermann@unnet.w.open.de@unnet (Volker Schuermann)
  10. Posting-number: Volume 29, Issue 64
  11. Archive-name: mbox/part02
  12. Environment: MINIX, ISC, ESIX, SVR3
  13.  
  14. #! /bin/sh
  15. # This is a shell archive.  Remove anything before this line, then feed it
  16. # into a shell via "sh file" or similar.  To overwrite existing files,
  17. # type "sh file -c".
  18. # The tool that generated this appeared in the comp.sources.unix newsgroup;
  19. # send mail to comp-sources-unix@uunet.uu.net if you want that tool.
  20. # Contents:  src/admin.c src/bled.doc src/mbox.msg
  21. # Wrapped by kent@sparky on Sun Apr  5 11:57:39 1992
  22. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  23. echo If this archive is complete, you will see the following message:
  24. echo '          "shar: End of archive 2 (of 10)."'
  25. if test -f 'src/admin.c' -a "${1}" != "-c" ; then 
  26.   echo shar: Will not clobber existing file \"'src/admin.c'\"
  27. else
  28.   echo shar: Extracting \"'src/admin.c'\" \(24446 characters\)
  29.   sed "s/^X//" >'src/admin.c' <<'END_OF_FILE'
  30. X/***************************************************************************/
  31. X/*        PROGRAMM  ix/Mbox                           */
  32. X/*             DATEI  admin.c                           */
  33. X/*        FUNKTIONEN  user_aendern(), user_anzeigen(), user_loeschen(),    */
  34. X/*              setup_get(), wait_until_keypressed(), admin(),       */
  35. X/*              setup()                               */
  36. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  37. X/*  LETZTE AENDERUNG  18.03.1992                       */
  38. X/***************************************************************************/
  39. X
  40. X#include <sys/types.h>
  41. X#include <sys/stat.h>
  42. X#include <unistd.h>
  43. X#include <stdio.h>
  44. X#include <fcntl.h>
  45. X
  46. X#include "mbox.h"
  47. X
  48. X
  49. Xvoid wait_until_keypressed();
  50. X
  51. X
  52. X
  53. X/***************************************************************************/
  54. X/*      FUNKTION  user_aendern                           */
  55. X/*  BESCHREIBUNG  Aendern ALLER Teilnehmerparameter (von ADMIN aus)        */
  56. X/*     PARAMETER  keine                                                       */
  57. X/*     RUECKGABE  keine                                                       */
  58. X/***************************************************************************/
  59. X
  60. Xvoid user_aendern()
  61. X{
  62. X  int fd;
  63. X  struct userdaten DUMMY, LOOSER;
  64. X  char s[STRING];
  65. X  char t[STRING];
  66. X  long ll = -1L;
  67. X  size_t dummy = sizeof(DUMMY);
  68. X  char c;
  69. X  int i;
  70. X  int uid = -1;
  71. X
  72. X  headline( ADM01_MSG );
  73. X
  74. X  printf("%s ", ADM02_MSG);
  75. X  strcpy(s, (char *) getline(30, 11, '.', ""));
  76. X  if ((s[0] > 47) && (s[0] < 58)) uid = atoi(s);
  77. X
  78. X  maybe_locked(UDBASE, "r"); lockf(UDBASE);
  79. X  fd = open(UDBASE, O_RDONLY);
  80. X  if(fd == -1){
  81. X    nerror("admin.c", 324, "aendern", "Datei-Lesefehler", UDBASE);
  82. X  }
  83. X  while(read(fd, &DUMMY, dummy) == dummy){
  84. X    if(uid == DUMMY.id){
  85. X        ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  86. X    }
  87. X    else{
  88. X        if((strcomp(s, DUMMY.name) == 0) ||
  89. X           (strcomp(s, DUMMY.nick) == 0) ||
  90. X           (strcomp(s, DUMMY.sh_name) == 0)){
  91. X            ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  92. X        }
  93. X    }
  94. X  }
  95. X  lseek(fd, ll, SEEK_SET);
  96. X  read(fd, &LOOSER, sizeof(LOOSER));
  97. X  close(fd);
  98. X  unlockf(UDBASE);
  99. X
  100. X  if(ll == -1L) return;
  101. X
  102. X  printf("%c%s %d                                               ", CR, ADM03_MSG, LOOSER.id);
  103. X
  104. X  printf("\n%s ", ADM04_MSG);
  105. X  strcpy(s, (char *) getline(30, 1011, '.', LOOSER.name));
  106. X  if (s[0] > 32) sprintf(LOOSER.name, s);
  107. X  if (s[0] == 32) LOOSER.name[0] = '\0';
  108. X
  109. X  printf("\n%s ", ADM05_MSG);
  110. X  strcpy(s, (char *) getline(10, 1011, '.', LOOSER.passwort));
  111. X  if (s[0] > 32) sprintf(LOOSER.passwort, s);
  112. X  if (s[0] == 32) LOOSER.passwort[0] = '\0';
  113. X
  114. X  printf("\n%s ", ADM06_MSG);
  115. X  strcpy(s, (char *) getline(14, 1011, '.', LOOSER.sh_name));
  116. X  if (s[0] > 32) sprintf(LOOSER.sh_name, s);
  117. X  if (s[0] == 32) LOOSER.sh_name[0] = '\0';
  118. X
  119. X  printf("\n%s ", ADM07_MSG);
  120. X  strcpy(s, (char *) getline(30, 1011, '.', LOOSER.nick));
  121. X  if (s[0] > 32) sprintf(LOOSER.nick, s);
  122. X  if (s[0] == 32) LOOSER.nick[0] = '\0';
  123. X
  124. X  printf("\n%s ", ADM08_MSG);
  125. X  strcpy(s, (char *) getline(30, 1011, '.', LOOSER.wohnort));
  126. X  if (s[0] > 31) sprintf(LOOSER.wohnort, s);
  127. X
  128. X  printf("\n%s ", ADM09_MSG);
  129. X  strcpy(s, (char *) getline(30, 1011, '.', LOOSER.strasse));
  130. X  if (s[0] > 31) sprintf(LOOSER.strasse, s);
  131. X
  132. X  printf("\n%s ", ADM10_MSG);
  133. X  strcpy(s, (char *) getline(20, 1011, '.', LOOSER.telefon1));
  134. X  if (s[0] > 31) sprintf(LOOSER.telefon1, s);
  135. X
  136. X  printf("\n%s ", ADM11_MSG);
  137. X  strcpy(s, (char *) getline(20, 1011, '.', LOOSER.telefon2));
  138. X  if (s[0] > 31) sprintf(LOOSER.telefon2, s);
  139. X
  140. X  printf("\n%s ", ADM12_MSG);
  141. X  strcpy(s, (char *) getline(10, 1114, '?', LOOSER.geburtsdatum));
  142. X  if (s[0] > 31) sprintf(LOOSER.geburtsdatum, s);
  143. X
  144. X  printf("\n%s ", ADM13_MSG);
  145. X  sprintf(t, "%d", LOOSER.terminal);
  146. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  147. X  if (s[0] > 31) LOOSER.terminal = atoi(s);
  148. X  if ((LOOSER.terminal < 1) || (LOOSER.terminal > 4)) LOOSER.terminal = 1;
  149. X
  150. X  printf("\n%s ", ADM14_MSG);
  151. X  sprintf(t, "%d", LOOSER.editor);
  152. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  153. X  if (s[0] > 31) LOOSER.editor = atoi(s);
  154. X  if ((LOOSER.editor < 1) || (LOOSER.editor > 3)) LOOSER.editor = 1;
  155. X
  156. X  printf("\n%s ", ADM15_MSG);
  157. X  sprintf(t, "%d", LOOSER.level);
  158. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  159. X  if (s[0] > 31) LOOSER.level = atoi(s);
  160. X
  161. X  printf("\n%s ", ADM16_MSG);
  162. X  sprintf(t, "%d", LOOSER.more);
  163. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  164. X  if (s[0] > 31) LOOSER.more = atoi(s);
  165. X  if ((LOOSER.more < 1) || (LOOSER.more > 3)) LOOSER.more = 1;
  166. X
  167. X  printf("\n%s ", ADM17_MSG);
  168. X  sprintf(t, "%d", LOOSER.bell);
  169. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  170. X  if (s[0] > 31) LOOSER.bell = atoi(s);
  171. X  if ((LOOSER.bell < -1) || (LOOSER.bell > 1)) LOOSER.bell = 0;
  172. X
  173. X  printf("\n%s ", ADM18_MSG);
  174. X  sprintf(t, "%d", LOOSER.prompt);
  175. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  176. X  if (s[0] > 31) LOOSER.prompt = atoi(s);
  177. X  if ((LOOSER.prompt < 1) || (LOOSER.prompt > 3)) LOOSER.prompt = 2;
  178. X
  179. X  printf("\n%s ", ADM19_MSG);
  180. X  LOOSER.tlines += 2;
  181. X  sprintf(t, "%d", LOOSER.tlines);
  182. X  strcpy(s, (char *) getline(5, 1111, '.', t));
  183. X  if (s[0] > 31) LOOSER.tlines = atoi(s);
  184. X  LOOSER.tlines -= 2;
  185. X  if ((LOOSER.tlines < 22) || (LOOSER.tlines > 23)) LOOSER.tlines = DEF_MAX_SCR_LINES;
  186. X  
  187. X  printf("\n%s ", ADM20_MSG);
  188. X  strcpy(s, (char *) getline(10, 1114, '?', LOOSER.lastlog));
  189. X  if (s[0] > 31) sprintf(LOOSER.lastlog, s);
  190. X
  191. X  printf("\n%s ", ADM21_MSG);
  192. X  strcpy(t, (char *) timereconv((long) LOOSER.lasttime));
  193. X  t[5] = '\0';
  194. X  strcpy(s, (char *) getline(5, 1113, '?', t));
  195. X  LOOSER.lasttime = timeconv(s);
  196. X
  197. X  printf("\n%s ", ADM21aMSG);
  198. X  strcpy(s, (char *) getline(17, 1011, '.', LOOSER.account));
  199. X  if (s[0] > 31) sprintf(LOOSER.account, s);
  200. X
  201. X  printf("\n%s ", ADM22_MSG);
  202. X  strcpy(s, (char *) getline(58, 1011, '.', LOOSER.newsgrps));
  203. X  if (s[0] > 31) sprintf(LOOSER.newsgrps, s);
  204. X
  205. X  printf("\n%s ", ADM23_MSG);
  206. X  sprintf(t, "%d", LOOSER.seq);
  207. X  strcpy(s, (char *) getline(10, 1111, '.', t));
  208. X  if (s[0] > 31) LOOSER.seq = atoi(s);
  209. X
  210. X  wait_until_keypressed();
  211. X
  212. X  maybe_locked(UDBASE, "r"); lockf(UDBASE);
  213. X  fd = open(UDBASE, O_WRONLY);
  214. X  if (fd == -1) {
  215. X    nerror("admin.c", 428, "aendern", "Datei-Schreibfehler", UDBASE);
  216. X  }
  217. X  if (lseek(fd, ll, SEEK_SET) == -1) {
  218. X    nerror("admin.c", 431, "aendern", "Positionierungsfehler", UDBASE);
  219. X  }
  220. X  write(fd, &LOOSER, sizeof(LOOSER));
  221. X  close(fd);
  222. X  unlockf(UDBASE);
  223. X
  224. X  if (LOOSER.id == USER.id) {    /* Ich bin's !!! */
  225. X
  226. X    maybe_locked(UDBASE, "r");
  227. X    lockf(UDBASE);
  228. X    fd = open(UDBASE, O_RDONLY);
  229. X    if (fd == -1) {
  230. X        nerror("admin.c", 324, "aendern", "Datei-Lesefehler", UDBASE);
  231. X    }
  232. X    lseek(fd, ll, SEEK_SET);
  233. X    read(fd, &USER, sizeof(USER));
  234. X    close(fd);
  235. X    unlockf(UDBASE);
  236. X  }
  237. X}
  238. X
  239. X
  240. X
  241. X/***************************************************************************/
  242. X/*      FUNKTION  user_anzeigen()                       */
  243. X/*  BESCHREIBUNG  ALLE Teilnehmerdaten anzeigen (von ADMIN aus)           */
  244. X/*     PARAMETER  keine                                                       */
  245. X/*     RUECKGABE  keine                                                       */
  246. X/***************************************************************************/
  247. X
  248. Xvoid user_anzeigen()
  249. X{
  250. X  int fd;
  251. X  struct userdaten DUMMY, LOOSER;
  252. X  char s[STRING];
  253. X  char t[STRING];
  254. X  long ll = -1L;
  255. X  size_t dummy = sizeof(DUMMY);
  256. X  char c;
  257. X  int i;
  258. X  int uid = -1;
  259. X
  260. X
  261. X  headline( ADM01_MSG );
  262. X
  263. X  printf("%s ", ADM02_MSG);
  264. X  strcpy(s, (char *) getline(30, 11, '.', ""));
  265. X  if ((s[0] > 47) && (s[0] < 58)) uid = atoi(s);
  266. X
  267. X  maybe_locked(UDBASE, "r"); lockf(UDBASE);
  268. X  fd = open(UDBASE, O_RDONLY);
  269. X  if (fd == -1) {
  270. X    nerror("admin.c", 324, "aendern", "Datei-Lesefehler", UDBASE);
  271. X  }
  272. X  while (read(fd, &DUMMY, dummy) == dummy) {
  273. X    if (uid == DUMMY.id) {
  274. X        ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  275. X    } 
  276. X    else{
  277. X        if ((strcomp(s, DUMMY.name) == 0) ||
  278. X            (strcomp(s, DUMMY.nick) == 0) ||
  279. X            (strcomp(s, DUMMY.sh_name) == 0)) {
  280. X            ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  281. X        }
  282. X    }
  283. X  }
  284. X  lseek(fd, ll, SEEK_SET);
  285. X  read(fd, &LOOSER, sizeof(LOOSER));
  286. X  close(fd);
  287. X  unlockf(UDBASE);
  288. X
  289. X  if (ll == -1L) return;
  290. X
  291. X  printf("%c  %s %d                                               ", CR, ADM03_MSG, LOOSER.id);
  292. X  printf("\n  %s %s",   ADM04_MSG, LOOSER.name);
  293. X  printf("\n  %s %s",   ADM05_MSG, LOOSER.passwort);
  294. X  printf("\n  %s %s",   ADM06_MSG, LOOSER.sh_name);
  295. X  printf("\n  %s %s",   ADM07_MSG, LOOSER.nick);
  296. X  printf("\n  %s %s",   ADM08_MSG, LOOSER.wohnort);
  297. X  printf("\n  %s %s",   ADM09_MSG, LOOSER.strasse);
  298. X  printf("\n  %s %s",   ADM10_MSG, LOOSER.telefon1);
  299. X  printf("\n  %s %s",   ADM11_MSG, LOOSER.telefon2);
  300. X  printf("\n  %s %s",   ADM12_MSG, LOOSER.geburtsdatum);
  301. X  printf("\n  %s %d",   ADM13_MSG, LOOSER.terminal);
  302. X  printf("\n  %s %d",   ADM14_MSG, LOOSER.editor);
  303. X  printf("\n  %s %d",   ADM15_MSG, LOOSER.level);
  304. X  printf("\n  %s %d",   ADM16_MSG, LOOSER.more);
  305. X  printf("\n  %s %d",   ADM17_MSG, LOOSER.bell);
  306. X  printf("\n  %s %d",   ADM18_MSG, LOOSER.prompt);
  307. X  printf("\n  %s %d",   ADM19_MSG, LOOSER.tlines += 2);
  308. X  printf("\n  %s %s",   ADM20_MSG, LOOSER.lastlog);
  309. X  printf("\n  %s %.5s", ADM21_MSG, (char *) timereconv((long) LOOSER.lasttime));
  310. X  printf("\n  %s %s",   ADM21aMSG, LOOSER.account);
  311. X  printf("\n  %s %s",   ADM22_MSG, LOOSER.newsgrps);
  312. X  printf("\n  %s %d",   ADM23_MSG, LOOSER.seq);
  313. X
  314. X  wait_until_keypressed();
  315. X}
  316. X
  317. X
  318. X
  319. X/***************************************************************************/
  320. X/*      FUNKTION  user_loeschen()                       */
  321. X/*  BESCHREIBUNG  Einen Teilnehmer einsch. persoenlicher Post etc. aus       */
  322. X/*          dem System entfernen.                                    */
  323. X/*     PARAMETER  keine                                                       */
  324. X/*     RUECKGABE  keine                                                       */
  325. X/***************************************************************************/
  326. X
  327. Xvoid user_loeschen()
  328. X{
  329. X  int fd;
  330. X  int gd;
  331. X  struct userdaten DUMMY, LOOSER;
  332. X  char s[STRING];
  333. X  char t[STRING];
  334. X  long ll = -1L;
  335. X  size_t dummy = sizeof(DUMMY);
  336. X  char c;
  337. X  int i;
  338. X  int uid = -1;
  339. X
  340. X
  341. X  headline( ADM25_MSG );
  342. X    
  343. X  printf("\n%s ", ADM02_MSG);
  344. X  strcpy(s, (char *) getline(30, 11, '.', ""));
  345. X  if ((s[0] > 47) && (s[0] < 58)) uid = atoi(s);
  346. X
  347. X  maybe_locked(UDBASE, "r"); lockf(UDBASE);
  348. X  fd = open(UDBASE, O_RDONLY);
  349. X  if (fd == -1) {
  350. X    nerror("admin.c", 459, "loeschen", "Datei-Lesefehler", UDBASE);
  351. X  }
  352. X  while (read(fd, &DUMMY, dummy) == dummy) {
  353. X    if (uid == DUMMY.id) {
  354. X        ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  355. X    }
  356. X    else{
  357. X        if ((strcomp(s, DUMMY.name) == 0) ||
  358. X            (strcomp(s, DUMMY.nick) == 0) ||
  359. X            (strcomp(s, DUMMY.sh_name) == 0)) {
  360. X            ll = lseek(fd, 0L, SEEK_CUR) - dummy;
  361. X        }
  362. X    }
  363. X  }
  364. X  lseek(fd, ll, SEEK_SET);
  365. X  read(fd, &LOOSER, sizeof(LOOSER));
  366. X  close(fd);
  367. X  unlockf(UDBASE);
  368. X
  369. X  if (ll == -1L) return;
  370. X
  371. X  printf("%c%s (%d)                                     ", CR, ADM26_MSG, LOOSER.id);
  372. X  printf("\n%s (%s) ", ADM27_MSG, LOOSER.name);
  373. X
  374. X  ansi("md");
  375. X  printf("\n\n%s [%c, %c] ? > ", ADM28_MSG, GBL06_MSG, GBL07_MSG);
  376. X  ansi("me");
  377. X
  378. X  c = yesno();
  379. X
  380. X  if (c != GBL06_MSG) return;
  381. X
  382. X  maybe_locked(UDBASE, "r"); lockf(UDBASE);
  383. X  fd = open(UDBASE, O_RDONLY);
  384. X  if (fd == -1) {
  385. X    nerror("admin.c", 490, "loeschen", "Datei-Lesefehler", UDBASE);
  386. X  }
  387. X  sprintf(s, "%s/%dbase", TMP, getpid());
  388. X
  389. X  gd = open(s, O_WRONLY | O_CREAT);
  390. X  if (gd == -1) {
  391. X    nerror("admin.c", 497, "loeschen", "Datei-Erstellungsfehler", s);
  392. X  }
  393. X  while (read(fd, &DUMMY, dummy) == dummy) {
  394. X    if (DUMMY.id != LOOSER.id) {
  395. X        write(gd, &DUMMY, dummy);
  396. X    }
  397. X  }
  398. X  close(gd);
  399. X  close(fd);
  400. X  unlockf(UDBASE);
  401. X
  402. X  sprintf(t, "cp %s %s", s, UDBASE);
  403. X  system(t);
  404. X
  405. X  unlink(s);
  406. X
  407. X  sprintf(s, "rm -r %s/usr/%d", HOME, LOOSER.id);
  408. X  system(s);
  409. X}
  410. X
  411. X
  412. X
  413. X
  414. X/***************************************************************************/
  415. X/*      FUNKTION  setup_get()                           */
  416. X/*  BESCHREIBUNG  Die Ziffern 1-max einlesen und zurueckgeben.           */
  417. X/*     PARAMETER  max  =  groesste, zulaessige Ziffer                   */
  418. X/*     RUECKGABE  erfasste Ziffer (CHAR !!!)                   */
  419. X/***************************************************************************/
  420. X
  421. Xint setup_get(max)
  422. Xchar max;
  423. X{
  424. X  char c;
  425. X
  426. X  ansi("md");
  427. X  printf("\n[1-%c] %s > ", max, ADM29_MSG);
  428. X  ansi("me");
  429. X
  430. X  do {
  431. X    c = getint();
  432. X    if ((c < '0') || (c > max)) c = 0;
  433. X  } while (c == 0);
  434. X  printf("%c", c);
  435. X
  436. X  return c;
  437. X}
  438. X
  439. X
  440. X
  441. X
  442. X/***************************************************************************/
  443. X/*      FUNKTION  wait_until_keypressed                       */
  444. X/*  BESCHREIBUNG  siehe FUNKTION                       */
  445. X/*     PARAMETER  keine                                                       */
  446. X/*     RUECKGABE  keine                                                       */
  447. X/***************************************************************************/
  448. X
  449. Xvoid wait_until_keypressed()
  450. X{
  451. X  char c;
  452. X
  453. X  ansi("md");
  454. X  printf("\n\n%s > ", ADM30_MSG);
  455. X  ansi("me");
  456. X  c = getint();
  457. X}
  458. X
  459. X
  460. X
  461. X
  462. X/***************************************************************************/
  463. X/*      FUNKTION  admin()                           */
  464. X/*  BESCHREIBUNG  Teilnehmerverwaltung fuer den Administrator/Sysop.       */
  465. X/*     PARAMETER  keine                                                       */
  466. X/*     RUECKGABE  keine                                                       */
  467. X/***************************************************************************/
  468. X
  469. Xvoid admin()
  470. X{
  471. X  char c;
  472. X
  473. XAGAIN:
  474. X
  475. X  headline( ADM31_MSG );
  476. X
  477. X  printf(  "\n  1 - %s", ADM32_MSG);
  478. X  printf("\n\n  2 - %s", ADM33_MSG);
  479. X  printf("\n\n  3 - %s", ADM34_MSG);
  480. X  printf("\n\n  4 - %s", ADM35_MSG);
  481. X  printf("\n\n  5 - %s", ADM36_MSG);
  482. X
  483. X  printf("\n");
  484. X  printf("\n\n  8 - %s", ADM37_MSG);
  485. X
  486. X  MEDIUM: printf("\n");
  487. X
  488. X  c = setup_get('8');
  489. X
  490. X  switch (c) {
  491. X      case '1':    
  492. X        postfach("*");
  493. X        logout();
  494. X        intro();
  495. X        break;
  496. X
  497. X      case '2':    
  498. X        user_aendern();
  499. X        break;
  500. X
  501. X      case '3':    
  502. X        user_loeschen();
  503. X        break;
  504. X
  505. X      case '4':    
  506. X        user_anzeigen();
  507. X        break;
  508. X
  509. X      case '5':
  510. X        userliste("");
  511. X        wait_until_keypressed();
  512. X        break;
  513. X
  514. X       default:
  515. X        printf("\n");
  516. X        return;
  517. X  }
  518. X  goto AGAIN;
  519. X
  520. X}
  521. X
  522. X
  523. X
  524. X
  525. X/***************************************************************************/
  526. X/*      FUNKTION  setup()                           */
  527. X/*  BESCHREIBUNG  Teilnehmerdaten/Parameter aendern (fuer die User)        */
  528. X/*     PARAMETER  keine                                                       */
  529. X/*     RUECKGABE  keine                                                       */
  530. X/***************************************************************************/
  531. X
  532. Xvoid setup()
  533. X{
  534. X  FILE *fp;
  535. X  int fd;
  536. X  char s[STRING];
  537. X  char t[STRING];
  538. X  char c;
  539. X  int i;
  540. X  int ok = 0;
  541. X  long ll;
  542. X  struct userdaten DUMMY;
  543. X  int dummy = sizeof(DUMMY);
  544. X  char *BLANKS = "                                               ";
  545. X
  546. X
  547. X  AGAIN:
  548. X
  549. X  headline( ADM38_MSG );
  550. X  printf("\n");
  551. X
  552. X  printf("  1 - %s\n\n", ADM39_MSG);
  553. X  printf("  2 - %s\n\n", ADM40_MSG);
  554. X  printf("  3 - %s\n\n", ADM41_MSG);
  555. X  printf("  4 - %s\n\n", ADM42_MSG);
  556. X  printf("  5 - %s\n\n", ADM43_MSG);
  557. X  printf("  6 - %s\n\n", ADM44_MSG);
  558. X  printf("  7 - %s\n\n", ADM45_MSG);
  559. X  printf("  8 - %s\n\n", ADM46_MSG);
  560. X  printf("\n");
  561. X  printf("  9 - %s\n\n", ADM47_MSG);
  562. X
  563. X  c = setup_get('9');
  564. X
  565. X  switch (c) {
  566. X      case '1':
  567. X        headline( ADM48_MSG );
  568. X        printf("\n");
  569. X        if (USER.terminal == 1)
  570. X            printf("*");
  571. X        else
  572. X            printf(" ");
  573. X        printf(" 1 - ANSI (X3.64 ... PC-BBS-ANSI)\n\n");
  574. X        if (USER.terminal == 2)
  575. X            printf("*");
  576. X        else
  577. X            printf(" ");
  578. X        printf(" 2 - VT100\n\n");
  579. X        if (USER.terminal == 3)
  580. X            printf("*");
  581. X        else
  582. X            printf(" ");
  583. X        printf(" 3 - VT52\n\n");
  584. X        if (USER.terminal == 4)
  585. X            printf("*");
  586. X        else
  587. X            printf(" ");
  588. X        printf(" 4 - Dump (%s)\n\n", ADM49_MSG);
  589. X        USER.terminal = setup_get('4') - 48;
  590. X        break;
  591. X
  592. X      case '2':
  593. X        headline( ADM50_MSG );
  594. X        printf("\n");
  595. X        fp = fopen(EDITORS, "r");
  596. X        if (fp == NULL) {
  597. X            nerror("admin.c", 563, "setup", "Datei-Lesefehler", EDITORS);
  598. X        }
  599. X        i = 0;
  600. X        while((fgets(s, 80, fp) != NULL) && (s[0] == '/'));
  601. X        while (fscanf(fp, "%s %s", s, t) > 0) {
  602. X            i++;
  603. X            if (USER.editor == i)
  604. X                printf("*");
  605. X            else
  606. X                printf(" ");
  607. X            printf(" %d - %s\n\n", i, s);
  608. X        }
  609. X        fclose(fp);
  610. X        USER.editor = setup_get((i + 48)) - 48;
  611. X    
  612. X        if (USER.level < WRITE_INTERNAT) USER.editor = 1;
  613. X        break;
  614. X
  615. X      case '3':
  616. X        headline( ADM51_MSG );
  617. X        printf("\n");
  618. X        strcpy(s, (char *) mytime(0));
  619. X        if ((USER.prompt == 1) && (USER.bell == 1))
  620. X            printf("*");
  621. X        else
  622. X            printf(" ");
  623. X        printf(" 1 - %s->     \"[%s] %s > \"\n\n", ADM52_MSG, s, LOP06_MSG);
  624. X        if ((USER.prompt == 1) && (USER.bell == 0))
  625. X            printf("*");             
  626. X        else
  627. X            printf(" ");
  628. X        printf(" 2 - %s->     \"[%s] %s > \"\n\n", ADM53_MSG, s, LOP06_MSG);
  629. X        if ((USER.prompt == 2) && (USER.bell == 1))
  630. X            printf("*");
  631. X        else
  632. X            printf(" ");
  633. X        printf(" 3 - %s->     \"[%s] %s > \"\n\n", ADM54_MSG, NG, LOP06_MSG);
  634. X        if ((USER.prompt == 2) && (USER.bell == 0))
  635. X            printf("*");
  636. X        else
  637. X            printf(" ");
  638. X        printf(" 4 - %s->     \"[%s] %s > \"\n\n", ADM55_MSG, NG, LOP06_MSG);
  639. X        if ((USER.prompt == 3) && (USER.bell == 1))
  640. X            printf("*");
  641. X        else
  642. X            printf(" ");
  643. X        printf(" 5 - %s->     \"[(Sec.) NZ, RZ, WZ] %s > \"\n\n", ADM56_MSG, LOP06_MSG);
  644. X        if ((USER.prompt == 3) && (USER.bell == 0))
  645. X            printf("*");
  646. X        else
  647. X            printf(" ");
  648. X        printf(" 6 - %s->     \"[(Sec.) NZ, RZ, WZ] %s > \"\n\n", ADM57_MSG, LOP06_MSG);
  649. X    
  650. X        c = setup_get('6');
  651. X        switch (c) {
  652. X                case '1':
  653. X                    USER.prompt = 1;
  654. X                    USER.bell = 1;
  655. X                    break;
  656. X                case '2':
  657. X                    USER.prompt = 1;
  658. X                    USER.bell = 0;
  659. X                    break;
  660. X                case '3':
  661. X                    USER.prompt = 2;
  662. X                    USER.bell = 1;
  663. X                    break;
  664. X                case '4':
  665. X                    USER.prompt = 2;
  666. X                    USER.bell = 0;
  667. X                    break;
  668. X                case '5':
  669. X                    USER.prompt = 3;
  670. X                    USER.bell = 1;
  671. X                    break;
  672. X                case '6':
  673. X                    USER.prompt = 3;
  674. X                    USER.bell = 0;
  675. X                    break;
  676. X        }
  677. X        break;
  678. X
  679. X      case '4':
  680. X        headline( ADM58_MSG );
  681. X        printf("\n");
  682. X        if (USER.more == 0)
  683. X            printf("*");
  684. X        else
  685. X            printf(" ");
  686. X        printf(" 1 - %s\n\n", ADM59_MSG);
  687. X        if (USER.more == 1)
  688. X            printf("*");
  689. X        else
  690. X            printf(" ");
  691. X        printf(" 2 - %s\n\n", ADM60_MSG);
  692. X        if (USER.more == 3)
  693. X            printf("*");
  694. X        else
  695. X            printf(" ");
  696. X        printf(" 3 - %s\n\n", ADM61_MSG);
  697. X        printf("\n");
  698. X        printf("  4 - %s\n\n", ADM62_MSG);
  699. X        printf("  5 - %s\n\n", ADM63_MSG);
  700. X        printf("  6 - %s\n\n", ADM64_MSG);        
  701. X        printf("  7 - %s\n\n", ADM64aMSG);
  702. X
  703. X        i = setup_get('7') - 49;
  704. X
  705. X        if (i < 3) {
  706. X            USER.more = i;
  707. X            if (USER.more == 2) USER.more++;
  708. X        }
  709. X        else {
  710. X            headline( ADM58_MSG );
  711. X            printf("\n");
  712. X            
  713. X            if (i == 3) {
  714. X                if (USER.leserichtung == 1)
  715. X                    printf("*");
  716. X                else
  717. X                    printf(" ");
  718. X                printf(" 1 - %s\n\n", ADM65_MSG);
  719. X                if (USER.leserichtung == 2)
  720. X                    printf("*");
  721. X                else
  722. X                    printf(" ");
  723. X                printf(" 2 - %s\n\n", ADM66_MSG);
  724. X        
  725. X                USER.leserichtung = setup_get('2') - 48;
  726. X            }
  727. X            if (i == 4) {
  728. X                if (USER.tlines != 23)
  729. X                    printf("*");
  730. X                else
  731. X                    printf(" ");
  732. X                printf(" 1 - %s\n\n", ADM67_MSG);
  733. X                if (USER.tlines == 23)
  734. X                    printf("*");
  735. X                else
  736. X                    printf(" ");
  737. X                printf(" 2 - %s\n\n", ADM68_MSG);
  738. X        
  739. X                USER.tlines = setup_get('2') - 48 + 21;
  740. X            }
  741. X            if (i == 5) {
  742. X                if (USER.schluessel[0] != 32)
  743. X                    printf("*");
  744. X                else
  745. X                    printf(" ");
  746. X                printf(" 1 - %s\n\n", ADM69_MSG);
  747. X                if (USER.schluessel[0] == 32)
  748. X                    printf("*");
  749. X                else
  750. X                    printf(" ");
  751. X                printf(" 2 - %s\n\n", ADM70_MSG);
  752. X        
  753. X                i = setup_get('2') - 48;
  754. X                if (i == 2){
  755. X                    USER.schluessel[0] = 32;
  756. X                }                
  757. X                else{
  758. X                    USER.schluessel[0] = 1;
  759. X                }
  760. X            }
  761. X            if (i == 6) {
  762. X                if (USER.schluessel[1] == 2)
  763. X                    printf("*");
  764. X                else
  765. X                    printf(" ");
  766. X                printf(" 1 - %s\n\n", ADM70aMSG);
  767. X                if (USER.schluessel[1] == 3)
  768. X                    printf("*");
  769. X                else
  770. X                    printf(" ");
  771. X                printf(" 2 - %s\n\n", ADM70bMSG);
  772. X        
  773. X                if (USER.schluessel[1] == 4)
  774. X                    printf("*");
  775. X                else
  776. X                    printf(" ");
  777. X                printf(" 3 - %s\n\n", ADM70cMSG);
  778. X    
  779. X                i = setup_get('3') - 48;
  780. X                USER.schluessel[1] = i + 1;
  781. X            }
  782. X        }
  783. X        break;
  784. X
  785. X    case '5':
  786. X        if (strcomp(GUEST, USER.name) == 0) break;
  787. X
  788. X        headline( ADM71_MSG );
  789. X        printf("\n");
  790. X
  791. X        ansi("md");
  792. X        printf("%s\n", ADM72_MSG);
  793. X        printf("%s\n", ADM73_MSG);
  794. X        printf("%s\n", ADM74_MSG);
  795. X        printf("\n");
  796. X        printf("%s\n", ADM75_MSG);
  797. X        printf("%s\n", ADM76_MSG);
  798. X        ansi("me");
  799. X
  800. X        maybe_locked(UDBASE, "r"); 
  801. X            fd = open(UDBASE, O_RDONLY);
  802. X        if (fd == -1) {
  803. X            nerror("admin.c", 747, "setup", "Datei-Lesefehler", UDBASE);
  804. X        }    
  805. X
  806. X        printf("\n%s ", ADM04_MSG);
  807. X        strcpy(s, (char *) getline(30, 1015, '.', USER.name));
  808. X        if(strcomp(GUEST, s) != 0){
  809. X            if (s[0] > 31){
  810. X                ok = 0;
  811. X                lseek(fd, 0L, SEEK_SET);
  812. X                while ((read(fd, &DUMMY, sizeof(DUMMY)) == sizeof(DUMMY)) && (ok == 0)) {
  813. X                    if (strcomp(s, DUMMY.name)    == 0) ok = 1;
  814. X                    if (strcomp(s, DUMMY.nick)    == 0) ok = 1;
  815. X                    if (strcomp(s, DUMMY.sh_name) == 0) ok = 1;
  816. X                }
  817. X                if(USER.level < ADMIN_LEV){
  818. X                    if ((strcomp("SYSOP", s) == 0) ||
  819. X                        (strcomp("POST",  s) == 0) ||
  820. X                        (strcomp("GAST",  s) == 0) ||
  821. X                        (strcomp("ADMIN", s) == 0) ||
  822. X                        (strcomp("COSYS", s) == 0)) ok++;
  823. X                }
  824. X
  825. X                if(ok == 0) sprintf(USER.name, s);
  826. X            }
  827. X        }
  828. X
  829. X        printf("\n%s ", ADM07_MSG);
  830. X        strcpy(s, (char *) getline(30, 1015, '.', USER.nick));
  831. X        if (s[0] > 31){    
  832. X            ok = 0;
  833. X            lseek(fd, 0L, SEEK_SET);
  834. X            while ((read(fd, &DUMMY, sizeof(DUMMY)) == sizeof(DUMMY)) && (ok == 0)) {
  835. X                if (strcomp(s, DUMMY.name)    == 0) ok = 1;
  836. X                if (strcomp(s, DUMMY.nick)    == 0) ok = 1;
  837. X                if (strcomp(s, DUMMY.sh_name) == 0) ok = 1;
  838. X            }
  839. X            if (USER.level < ADMIN_LEV){
  840. X                if ((strcomp("SYSOP", s) == 0) ||
  841. X                    (strcomp("POST",  s) == 0) ||
  842. X                    (strcomp("GAST",  s) == 0) ||
  843. X                    (strcomp("ADMIN", s) == 0) ||
  844. X                    (strcomp("COSYS", s) == 0)) ok++;
  845. X            }
  846. X
  847. X            if(ok == 0) sprintf(USER.nick, s);
  848. X        }
  849. X
  850. X        close(fd);
  851. X        unlockf(UDBASE);
  852. X
  853. X        printf("\n%s ", ADM08_MSG);
  854. X        strcpy(s, (char *) getline(30, 1011, '.', USER.wohnort));
  855. X        if (s[0] > 31) sprintf(USER.wohnort, s);
  856. X
  857. X        printf("\n%s ", ADM09_MSG);
  858. X        strcpy(s, (char *) getline(30, 1011, '.', USER.strasse));
  859. X        if (s[0] > 31) sprintf(USER.strasse, s);
  860. X
  861. X        printf("\n%s ", ADM10_MSG);
  862. X        strcpy(s, (char *) getline(20, 1011, '.', USER.telefon1));
  863. X        if (s[0] > 31) sprintf(USER.telefon1, s);
  864. X
  865. X        printf("\n%s ", ADM11_MSG);
  866. X        strcpy(s, (char *) getline(20, 1011, '.', USER.telefon2));
  867. X        if (s[0] > 31) sprintf(USER.telefon2, s);
  868. X
  869. X        printf("\n%s ", ADM12_MSG);
  870. X        strcpy(s, (char *) getline(10, 1114, '?', USER.geburtsdatum));
  871. X        if (s[0] > 31) sprintf(USER.geburtsdatum, s);
  872. X
  873. X        break;
  874. X
  875. X
  876. X      case '6':
  877. X        if (strcomp(GUEST, USER.name) == 0) break;
  878. X
  879. X        headline( ADM77_MSG );
  880. X        
  881. X        NIX: printf("\n%s ", ADM78_MSG);
  882. X    
  883. X        strcpy(s, (char *) getline(10, 12, '.', ""));
  884. X        if (s[0] != '\0') {
  885. X            strcpy(USER.passwort, (char *) crypted(s));
  886. X            printf(" (%s)", USER.passwort);
  887. X        }
  888. X        if (length(USER.passwort) < 5) {
  889. X            ansi("md");
  890. X            printf("\n\n%s\n", ADM79_MSG);
  891. X            ansi("me");
  892. X            goto NIX;
  893. X        }
  894. X        printf("\n\n%s ", ADM80_MSG);
  895. X        strcpy(s, (char *) getline(10, 12, '.', ""));
  896. X        strcpy(t, (char *) crypted(s));
  897. X        printf(" (%s)", t);
  898. X        if ((strcomp(t, USER.passwort) != 0) || (strcomp(USER.passwort, t) != 0)) {
  899. X            ansi("md");
  900. X            printf(" %s         \n", ADM81_MSG);
  901. X            ansi("me");
  902. X            goto NIX;
  903. X        }
  904. X        break;
  905. X
  906. X    case '7':
  907. X        headline( ADM82_MSG );
  908. X        printf("\n");
  909. X        strcpy(s, (char *) mytime(0));
  910. X        if (USER.intro == 1)
  911. X            printf("*");
  912. X        else
  913. X            printf(" ");
  914. X        printf(" 1 - %s\n\n", ADM83_MSG);
  915. X        if (USER.intro == 2)
  916. X            printf("*");
  917. X        else
  918. X            printf(" ");
  919. X        printf(" 2 - %s\n\n", ADM84_MSG);
  920. X        if (USER.intro == 3)
  921. X            printf("*");
  922. X        else
  923. X            printf(" ");
  924. X        printf(" 3 - %s\n\n", ADM85_MSG);
  925. X        if (USER.intro == 4)
  926. X            printf("*");
  927. X        else
  928. X            printf(" ");
  929. X        printf(" 4 - %s\n\n", ADM86_MSG);
  930. X
  931. X        USER.intro = setup_get('4') - 48;
  932. X        break;
  933. X
  934. X      case '8':
  935. X        headline( ADM87_MSG );
  936. X        printf("\n");
  937. X        if (USER.lastmode == 1)
  938. X            printf("*");
  939. X        else
  940. X            printf(" ");
  941. X        printf(" 1 - %s\n\n", ADM88_MSG);
  942. X        if (USER.lastmode == 2)
  943. X            printf("*");
  944. X        else
  945. X            printf(" ");
  946. X        printf(" 2 - %s\n\n", ADM89_MSG);
  947. X        printf("\n");
  948. X        printf("  3 - %s\n\n", ADM90_MSG);
  949. X    
  950. X        i = setup_get('3') - 48;
  951. X
  952. X        switch (i) {
  953. X            case 1:
  954. X                USER.lastmode = 1;
  955. X                LASTTIME = USER.lasttime;
  956. X                break;
  957. X            case 2:
  958. X                USER.lastmode = 2;
  959. X                LASTTIME = (int) 0;
  960. X                break;
  961. X            case 3:
  962. X                headline( ADM87_MSG );
  963. X                ansi("md");
  964. X                printf("\n%s\n", ADM91_MSG);
  965. X                printf("%s\n", ADM92_MSG);
  966. X                printf("%s\n", ADM93_MSG);
  967. X                printf("%s\n", ADM94_MSG);
  968. X                ansi("me");
  969. X
  970. X                printf("\n%s ", ADM95_MSG);
  971. X                strcpy(t, (char *) datereconv(LASTLOG));
  972. X                strcpy(s, (char *) getline(10, 1114, '?', t));
  973. X                LASTLOG = (long) dateconv(s);
  974. X
  975. X                printf("\n%s ", ADM96_MSG);
  976. X                strcpy(t, (char *) timereconv(LASTTIME));
  977. X                strcpy(s, (char *) getline(8, 1113, '?', t));
  978. X                LASTTIME = timeconv(s);
  979. X
  980. X                break;
  981. X        }
  982. X        break;
  983. X
  984. X      case '9':    
  985. X        goto ENDE;
  986. X        break;
  987. X  }
  988. X  printf("\n\n");
  989. X  init_user( ADM97_MSG );
  990. X  goto AGAIN;
  991. X
  992. X  ENDE:
  993. X
  994. X  printf("\n");
  995. X  return;
  996. X}
  997. END_OF_FILE
  998.   if test 24446 -ne `wc -c <'src/admin.c'`; then
  999.     echo shar: \"'src/admin.c'\" unpacked with wrong size!
  1000.   fi
  1001.   # end of 'src/admin.c'
  1002. fi
  1003. if test -f 'src/bled.doc' -a "${1}" != "-c" ; then 
  1004.   echo shar: Will not clobber existing file \"'src/bled.doc'\"
  1005. else
  1006.   echo shar: Extracting \"'src/bled.doc'\" \(1399 characters\)
  1007.   sed "s/^X//" >'src/bled.doc' <<'END_OF_FILE'
  1008. X(B)LED ist ein zeilenorientierer Editor (Text-Erfassungssystem), der Texte
  1009. Xbeliebiger Groesse verarbeiten kann.
  1010. X
  1011. XEr verwendet verschiedene Eingabemodi, die jeweils am Prefix vor der
  1012. XZeilennummer zu identifizieren sind:
  1013. X
  1014. XL0000 Text-Zeile ...                  # Lese-Modus (".l" und ".L")
  1015. XA0000 Text-Zeile ...                  # Anhaenge-Modus (".a")
  1016. XI0000 Text-Zeile ...                  # Einfuge-Modus (".i")
  1017. XK0000 Text-Zeile ...                  # Korrektur-Modus (".k");
  1018. X
  1019. XWird ein neuer Text erfasst, ist der Anhaenge-Modus aktiv. Mit dem
  1020. XBefehl ".l" (bzw. ".L") kann man sich den bereits eingegeben Text
  1021. Xanzeigen lassen.
  1022. X
  1023. XMuss eine Zeile korrigiert werden, wird mit dem Befehl ".k ZEILE" die
  1024. Xentsprechende Zeile (ZEILE) nochmals angezeigt und kann ueberarbeitet
  1025. Xwerden.
  1026. X
  1027. XSoll zwischen den bereits erfassten Zeilen neuer Text eingegeben werden,
  1028. Xmuss mit ".i ZEILE" in den Einfuege-Modus gewechselt werden. Von nun 
  1029. Xan werden die Eingaben zwischen "ZEILE -1" und "ZEILE" eingefuegt. Die
  1030. XNummerierung der auf "ZEILE" folgenden Zeilen wird automatisch angepasst.
  1031. XDer Einfuege-Modus wird mit ".a" beendet. Danach ist der Anhaenge-Modus
  1032. Xaktiv, und alle Eingaben werden ans Ende des Textes angehaengt.
  1033. X
  1034. XSollen Zeilen komplett entfernt werden, kommt der Befehl ".d" zum Einsatz.
  1035. XWerden keine Zeilennummern angegeben, wird der gesamte Text geloescht !!!
  1036. X
  1037. XBeendet und gesichert wird die Eingabe mit "." !
  1038. END_OF_FILE
  1039.   if test 1399 -ne `wc -c <'src/bled.doc'`; then
  1040.     echo shar: \"'src/bled.doc'\" unpacked with wrong size!
  1041.   fi
  1042.   # end of 'src/bled.doc'
  1043. fi
  1044. if test -f 'src/mbox.msg' -a "${1}" != "-c" ; then 
  1045.   echo shar: Will not clobber existing file \"'src/mbox.msg'\"
  1046. else
  1047.   echo shar: Extracting \"'src/mbox.msg'\" \(25229 characters\)
  1048.   sed "s/^X//" >'src/mbox.msg' <<'END_OF_FILE'
  1049. X/***************************************************************************/
  1050. X/*        PROGRAMM  ix/Mbox                           */
  1051. X/*             DATEI  MBOX.MSG "deutsch"                   */
  1052. X/*        FUNKTIONEN  Landessprachen-abhaengige Text-Zeilen           */
  1053. X/*             AUTOR  vs (Volker Schuermann/MINIX-Version)           */
  1054. X/*  LETZTE AENDERUNG  23.02.1992                       */
  1055. X/***************************************************************************/
  1056. X
  1057. X/* ?? SysV.getch.c */
  1058. X
  1059. X/* admin.c */
  1060. X
  1061. X#define ADM01_MSG    " Administration (Userdaten aendern) "
  1062. X#define ADM01aMSG    " Administration (Userdaten anzeigen) "
  1063. X#define ADM02_MSG    "UserID/Username:"
  1064. X#define ADM03_MSG    "            User-ID:"
  1065. X#define ADM04_MSG    "           Username:"
  1066. X#define ADM05_MSG    "           Passwort:"
  1067. X#define ADM06_MSG    "         SH-Account:"
  1068. X#define ADM07_MSG    "              Alias:"
  1069. X#define ADM08_MSG    "            Wohnort:"
  1070. X#define ADM09_MSG    "            Strasse:"
  1071. X#define ADM10_MSG    "    Telefon (voice):"
  1072. X#define ADM11_MSG    "     Telefon (data):"
  1073. X#define ADM12_MSG    "       Geburtsdatum:"
  1074. X#define ADM13_MSG    "           Terminal:"
  1075. X#define ADM14_MSG    "             Editor:"
  1076. X#define ADM15_MSG    "              Level:"
  1077. X#define ADM16_MSG    "               More:"
  1078. X#define ADM17_MSG    "               Bell:"
  1079. X#define ADM18_MSG    "             Prompt:"
  1080. X#define ADM19_MSG    "              Lines:"
  1081. X#define ADM20_MSG    "          LastLogin:"
  1082. X#define ADM21_MSG    "           LastTime:"
  1083. X#define ADM21aMSG    "            Account:"
  1084. X#define ADM22_MSG    "            Bretter:"
  1085. X#define ADM23_MSG    "                SEQ:"
  1086. X#define ADM24_MSG    " Administration (Userdaten aendern) "    
  1087. X#define ADM25_MSG    " Administration (Userdaten loeschen) "
  1088. X#define ADM26_MSG    "User-ID"
  1089. X#define ADM27_MSG    "Username"
  1090. X#define ADM28_MSG    "[LOESCHEN] Wirklich?"
  1091. X#define ADM29_MSG    "Welcher?"
  1092. X#define ADM30_MSG    "[ADM] Weiter?"
  1093. X#define ADM31_MSG    " Administration (Sysop\'s Revenge) "
  1094. X#define ADM32_MSG    "User erfassen"
  1095. X#define ADM33_MSG    "User aendern"
  1096. X#define ADM34_MSG    "User loeschen"
  1097. X#define ADM35_MSG    "User anzeigen"
  1098. X#define ADM36_MSG    "Userliste ausgeben"
  1099. X#define ADM37_MSG    "Zurueck zur MBox"
  1100. X#define ADM38_MSG    " Administration (Setup) "
  1101. X#define ADM39_MSG    "Terminal (ANSI, VT100 etc.)"
  1102. X#define ADM40_MSG    "Editor (Texterfassungs-System)"
  1103. X#define ADM41_MSG    "Prompt (Eingabeaufforderung)"
  1104. X#define ADM42_MSG    "Ausgabe (Textausgabe)"
  1105. X#define ADM43_MSG    "Anschrift (Persoenliche Daten)"
  1106. X#define ADM44_MSG    "Passwort (Regelmaessig aendern!)"
  1107. X#define ADM45_MSG    "Intro (Statusmeldung/Intro ausgeben?)"
  1108. X#define ADM46_MSG    "Scanner (Datum des letzen Logins)"
  1109. X#define ADM47_MSG    "ENDE (Setup verlassen)"
  1110. X#define ADM48_MSG    " Administration (Terminal) "
  1111. X#define ADM49_MSG    "List-Device"
  1112. X#define ADM50_MSG    " Administration (Editor) "
  1113. X#define ADM51_MSG    " Administration (Prompt) "
  1114. X#define ADM52_MSG    "Zeit & Signal (BELL)         "
  1115. X#define ADM53_MSG    "Zeit                         "
  1116. X#define ADM54_MSG    "Brett & Signal (BELL)        "
  1117. X#define ADM55_MSG    "Brett                        "
  1118. X#define ADM56_MSG    "Einheiten & Signal (BELL)    "
  1119. X#define ADM57_MSG    "Einheiten                    "
  1120. X#define ADM58_MSG    " Administration (Textausgabe) "
  1121. X#define ADM59_MSG    "Kontinuierlich ausgeben (TYPE, CAT)"
  1122. X#define ADM60_MSG    "Seitenweise ausgeben (Seitenende markieren)"
  1123. X#define ADM61_MSG    "Seitenweise ausgeben (Seitenende nicht markieren)"
  1124. X#define ADM62_MSG    "Leserichtung aendern (alt <> neu)"
  1125. X#define ADM63_MSG    "Anzahl der Zeilen (Statuszeile)"
  1126. X#define ADM64_MSG    "Ausgabe der Artikel-\"Header\""
  1127. X#define ADM64aMSG    "Bretter/Gruppen-Darstellung (Anzahl der Spalten)"
  1128. X#define ADM65_MSG    "Leserichtung von ALT nach NEU"
  1129. X#define ADM66_MSG    "Leserichtung von NEU nach ALT"
  1130. X#define ADM67_MSG    "Anzahl der Zeilen: 24 (Statuszeile; z.B. ProComm)"
  1131. X#define ADM68_MSG    "Anzahl der Zeilen: 25 (keine Statuszeile)"
  1132. X#define ADM69_MSG    "Original Artikel \"Header\" (komplett)"    
  1133. X#define ADM70_MSG    "Kurzausgabe (Autor, Betreff, Datum)"
  1134. X#define ADM70aMSG    "Zweispaltige Ausgabe der Bretter/Gruppen"
  1135. X#define ADM70bMSG    "Dreispaltige Ausgabe"
  1136. X#define ADM70cMSG    "Vierspaltige Ausgabe"
  1137. X#define ADM71_MSG    " Administration (Anschrift) "
  1138. X#define ADM72_MSG    "ALLE persoenlichen Daten (das schliesst auch den Usernamen ein) koennen an"
  1139. X#define ADM73_MSG    "dieser Stelle geandert werden. Um an Netz-Bretter (SUBNet-Newsgroups) senden"
  1140. X#define ADM74_MSG    "zu duerfen, muessen zumindest der Name und die Anschrift angegeben werden."
  1141. X#define ADM75_MSG    "Die vorgegebenen Eintraege koennen mit <ENTER> uebernommen/bestaetigt, oder"
  1142. X#define ADM76_MSG    "durch Neueingabe ueberschrieben/korrigiert werden !"
  1143. X#define ADM77_MSG    " Administration (Passwort) "
  1144. X#define ADM78_MSG    "Neues Passwort:"
  1145. X#define ADM79_MSG    "Es muessen mindestens fuenf Zeichen eingegeben werden!"
  1146. X#define ADM80_MSG    "Nochmal bitte:"
  1147. X#define ADM81_MSG    "<- Nicht identisch !!!"
  1148. X#define ADM82_MSG    " Administration (Intro) "
  1149. X#define ADM83_MSG    "Statusmeldung & Intro-Meldung"
  1150. X#define ADM84_MSG    "Statusmeldung"
  1151. X#define ADM85_MSG    "Intro-Meldung"
  1152. X#define ADM86_MSG    "Keine Meldung"
  1153. X#define ADM87_MSG    " Administration (Scanner) "
  1154. X#define ADM88_MSG    "Datum & Uhrzeit des letzen Logins vergleichen"
  1155. X#define ADM89_MSG    "Nur das Datum vergleichen"
  1156. X#define ADM90_MSG    "Datum und Uhrzeit aendern"
  1157. X#define ADM91_MSG    "Immer wenn das System angewiesen wird \"aktuelle\" Informationen anzuzeigen,"
  1158. X#define ADM92_MSG    "wird anhand des \"Datums des letzen Logins\" ausgewaehlt. Dieses Datum koennen"
  1159. X#define ADM93_MSG    "Sie nun aendern. Je weiter Sie zurueckdatieren, desto mehr Artikel werden"
  1160. X#define ADM94_MSG    "angezeigt ..."
  1161. X#define ADM95_MSG    "Neues Datum:"
  1162. X#define ADM96_MSG    "Neue Uhrzeit:"
  1163. X#define ADM97_MSG    "Reorganisieren"
  1164. X
  1165. X
  1166. X/* ?? befehl.c */
  1167. X
  1168. X/* bled.c */
  1169. X
  1170. X#define BLD01_MSG    "Fehler bei der Zeilenangabe."
  1171. X#define BLD02_MSG    "Uebertragung beginnt. (Beenden mit CTRL-X !)"
  1172. X#define BLD03_MSG    "Syntax-Fehler."
  1173. X#define BLD04_MSG    "Befehlsuebersicht"
  1174. X#define BLD05_MSG    ".l [ZEILE]|[VON,BIS]   lesen"
  1175. X#define BLD06_MSG    ".L [ZEILE]|[VON,BIS]   lesen (keine Zeilennummern)"
  1176. X#define BLD07_MSG    ".i AB                  einfuegen"
  1177. X#define BLD08_MSG    ".a                     anhaengen (beendet einfuegen)"
  1178. X#define BLD09_MSG    ".k ZEILE               korrigieren"
  1179. X#define BLD10_MSG    ".d [ZEILE]|[VON,BIS]   loeschen"    
  1180. X#define BLD11_MSG    ".u                     uebertragen (ASCII-Upload)"
  1181. X#define BLD12_MSG    ".q                     abbrechen"
  1182. X#define BLD13_MSG    ".h                     ausfuehrliche Hilfe"
  1183. X#define BLD14_MSG    ".                      sichern & beenden"
  1184. X#define BLD15_MSG    "ZEILE, VON, BIS, AB sind gueltige Zeilennummern."
  1185. X#define BLD16_MSG    "Angaben in [KLAMMERN] sind optional. Werden"
  1186. X#define BLD17_MSG    "keine Angaben gemacht gilt AB=1, VON=1, BIS=32000."
  1187. X#define BLD18_MSG    "Hilfe"
  1188. X#define BLD19_MSG    "Abgebrochen. Datei NICHT gesichert."
  1189. X#define BLD20_MSG    "Befehl unbekannt."
  1190. X#define BLD21_MSG    "Prozess terminiert. Datei gesichert."
  1191. X#define BLD22_MSG    "Keine Datei angegeben."    
  1192. X#define BLD23_MSG    "Momentchen ..."
  1193. X#define BLD24_MSG    "Datei"
  1194. X#define BLD25_MSG    "enthaelt ein ausfuehrbares Programm."
  1195. X#define BLD26_MSG    "Datei wird angelegt."
  1196. X#define BLD27_MSG    "Datei enthaelt"
  1197. X#define BLD28_MSG    "Zeilen"    
  1198. X#define BLD29_MSG    "Probleme ..."
  1199. X#define BLD30_MSG    "Und 'tschuess ..."
  1200. X
  1201. X
  1202. X/* control.c */
  1203. X
  1204. X#define CTL01_MSG    "Fehler in der Fehlerroutine !!!"
  1205. X
  1206. X
  1207. X/* ?? coreleft.c */
  1208. X
  1209. X/* ?? ctrlx.c */
  1210. X
  1211. X/* derror.c */
  1212. X
  1213. X#define DER01_MSG    "FEHLER:"
  1214. X#define DER02_MSG    "Fehler:"
  1215. X#define DER03_MSG    "abgebrochen"
  1216. X
  1217. X
  1218. X/* games.c */
  1219. X
  1220. X#define GA01_MSG    " Online-Spiele (teilweise mit ANSI-Steuerung) "
  1221. X#define GA02_MSG    "[Spiele] Welches?"
  1222. X#define GA03_MSG    "<- Dann eben(d) nicht!"
  1223. X
  1224. X
  1225. X/* ?? getch.c */
  1226. X
  1227. X/* ?? getline.c */
  1228. X
  1229. X/* help.c */
  1230. X
  1231. X#define HLP01_MSG    " Hilfsfunktion (gueltig nur fuer ix/MBox) "
  1232. X
  1233. X
  1234. X/* intro.c */
  1235. X
  1236. X#define INT01_MSG    "Organisation:"
  1237. X#define INT02_MSG    "BBS-Software:"
  1238. X#define INT03_MSG    "Mailbox-Name:"
  1239. X#define INT04_MSG    "Waehlen Sie ein Terminal aus:"
  1240. X#define INT05_MSG    "1 - ANSI         2 - VT100         3 - VT52         4 - DUMP"
  1241. X#define INT06_MSG    "Terminal?"
  1242. X#define INT07_MSG    "---  Ihr Prozess wurde terminiert  ---"
  1243. X#define INT08_MSG    "User"
  1244. X#define INT09_MSG    "meldet sich an"
  1245. X#define INT10_MSG    "Anmeldung"
  1246. X#define INT11_MSG    "Initialisierung"
  1247. X#define INT12_MSG    "Das ist Ihr"
  1248. X#define INT13_MSG    "Anruf in dieser Box, am"
  1249. X#define INT14_MSG    "waren Sie zuletzt aktiv"
  1250. X#define INT15_MSG    "Es gibt"
  1251. X#define INT16_MSG    "Bretter mit neuen Nachrichten und Ihr Postfach enthaelt"
  1252. X#define INT17_MSG    "Briefe"
  1253. X#define INT18_MSG    "Hey, heute ist Dein Geburtstag ... schon gemerkt ?"
  1254. X#define INT19_MSG    "Dann man \"HERZLICHEN GLUECKWUNSCH\" !!!"
  1255. X#define INT20_MSG    "Nur fuer den Fall das jemand fragt:"
  1256. X#define INT21_MSG    "Heute fangen die Weihnachtsfeiertage an ... MERRY XMAS !!!"
  1257. X#define INT22_MSG    "Wenn Dir heute so ein \"Typ in rot\" ueber den Weg laeuft ..."
  1258. X#define INT23_MSG    "... gruess' schoen, es ist der Nikolaus !!!"
  1259. X#define INT24_MSG    "Endlich ... das Jahr haben wir geschafft ..."
  1260. X#define INT25_MSG    "Ein schoenes \"neues\" wuensche ich Dir !!!"
  1261. X#define INT26_MSG    "Da haben wir Ihn endlich, den"
  1262. X#define INT27_MSG    "sten Anrufer !!!"
  1263. X
  1264. X
  1265. X/* lesen2.c */
  1266. X
  1267. X#define LE201_MSG    "Artikel"
  1268. X#define LE202_MSG    "Artikel:"
  1269. X#define LE203_MSG    "<- Den Artikel gibt's nicht!"
  1270. X#define LE204_MSG    "<- Hier gibt's keine aktuellen Artikel!"
  1271. X#define LE205_MSG    "Inhalt"
  1272. X#define LE206_MSG    "Leider keine neuen Artikel ..."
  1273. X#define LE207_MSG    "Es gibt aber noch"
  1274. X#define LE208_MSG    "aeltere Eintraege."
  1275. X#define LE209_MSG    "Und ausserdem gibt's auch keine aelteren Eintraege."
  1276. X#define LE210_MSG     "In diesem Brett gibt's noch"
  1277. X#define LE211_MSG    "aeltere Artikel."
  1278. X#define LE212_MSG    "In diesem Brett gibt's keine aelteren Artikel."
  1279. X#define LE213_MSG    "<- Den Artikel gibt's nicht!"
  1280. X#define LE214_MSG    "Keine entsprechenden Artikel gefunden ..."
  1281. X
  1282. X
  1283. X/* loop.c */
  1284. X
  1285. X#define LOP01_MSG    "---  Abgebrochen  ---"
  1286. X#define LOP02_MSG    "---  Ihr Prozess wurde terminiert  ---"    
  1287. X#define LOP03_MSG    "Fuer Sie ist gerade Post angekommen ..."
  1288. X#define LOP04_MSG    "Befehl:"
  1289. X#define LOP05_MSG    " Befehlspuffer (1-9) "
  1290. X#define LOP06_MSG    "Nun?"
  1291. X#define LOP07_MSG    "<- Nein, so daemlich kann kein User sein !"
  1292. X#define LOP08_MSG    "Befehle (Level"
  1293. X#define LOP09_MSG    "Befehle (Gesamtuebersicht)"
  1294. X#define LOP10_MSG    "<- Laecherlich!"
  1295. X#define LOP11_MSG    "<- Hier muss ein Befehl angegeben werden !"
  1296. X#define LOP12_MSG    "Keine Hilfe zum Befehl"
  1297. X#define LOP13_MSG    "gefunden ..."
  1298. X#define LOP14_MSG    " Protokoll der Anrufe(r) "
  1299. X#define LOP15_MSG    "Anruf  Teilnehmer                    Standort         Terminal  Datum     Zeit"
  1300. X#define LOP16_MSG    "Keine Schreibberechtigung !"
  1301. X#define LOP17_MSG    "Definitionen:"
  1302. X#define LOP18_MSG    "Datum:"
  1303. X#define LOP19_MSG    "Uhrzeit:"    
  1304. X#define LOP20_MSG    "Sekunden"
  1305. X#define LOP21_MSG    "Leserichtung:"
  1306. X#define LOP22_MSG    "Neu -> Alt"
  1307. X#define LOP22aMSG    "Alt -> Neu"
  1308. X#define LOP23_MSG    " Datei-Statistik (NewsSystem) "    
  1309. X#define LOP24_MSG    "Datum     Zeit    Bretter  Zeichen (kB)   Total: Bretter  Artikel  Zeichen (kB)"    
  1310. X#define LOP25_MSG    " Gebuehren-Statistik (UUCP-Transfer) "
  1311. X#define LOP26_MSG    " Transfer-Statistik (Download) "
  1312. X#define LOP27_MSG    "Datum        Datei                                        CPS     BPS  Status"       
  1313. X#define LOP28_MSG    "[BEENDEN] Wirklich?"
  1314. X#define LOP29_MSG    "Momentchen"
  1315. X#define LOP30_MSG    "<- Nicht mit Level"
  1316. X#define LOP31_MSG    "<- Befehl nicht bekannt!"
  1317. X#define LOP32_MSG    " Download-Statistik (Hitliste) "
  1318. X#define LOP33_MSG    "DNLs   Datei"
  1319. X#define LOP34_MSG    " Anrufer-Statistik (Anrufe pro Teilnehmer) " 
  1320. X#define LOP35_MSG    "Anrufe   Teilnehmer"
  1321. X
  1322. X
  1323. X/* mail.c */
  1324. X
  1325. X#define MAL01_MSG    "Internationale Mails duerfen erst ab LEVEL"
  1326. X#define MAL02_MSG    "geschrieben werden ..."
  1327. X#define MAL03_MSG    "<- Empfaenger fehlt !"
  1328. X#define MAL04_MSG    "Externe User duerfen erst ab LEVEL"
  1329. X#define MAL05_MSG    "angeschrieben werden ..."
  1330. X#define MAL06_MSG    "[Frwd]"
  1331. X#define MAL07_MSG    "<Kein Betreff verfuegbar>"
  1332. X#define MAL08_MSG    "Anschrift des externen Users nicht gefunden !"
  1333. X#define MAL09_MSG    "Den User"
  1334. X#define MAL10_MSG    "gibt es auf diesem Host nicht !"
  1335. X#define MAL11_MSG    "Brief an"
  1336. X#define MAL12_MSG    "S, U, V"
  1337. X#define MAL13_MSG    'S'
  1338. X#define MAL14_MSG    'U'
  1339. X#define MAL15_MSG    'V'
  1340. X#define MAL16_MSG    "Schreiben, per Upload uebertragen, Verwerfen & abbrechen"
  1341. X#define MAL17_MSG    "[Uebertragungs-Protokoll] A, X, Y, Z"
  1342. X#define MAL17aMSG    "ASCII (Text), [X-Modem], Y-Modem (Batch), Z-Modem"
  1343. X#define MAL18_MSG    'A'
  1344. X#define MAL19_MSG    'X'
  1345. X#define MAL20_MSG    'Y'
  1346. X#define MAL21_MSG    'Z'
  1347. X#define MAL22_MSG    "     Von:"
  1348. X#define MAL23_MSG    "      An:"
  1349. X#define MAL23aMSG    "Kopie an:"
  1350. X#define MAL24_MSG    " Betreff:"
  1351. X#define MAL25_MSG    "Binaerdateien duerfen NICHT an persoenliche Bretter geschrieben werden ..."
  1352. X#define MAL26_MSG    "Bitte starten Sie die Uebertragung jetzt ... Beenden mit CTRL-X !"
  1353. X#define MAL27_MSG    "Kein Brief angekommen, Vorgang beendet ..."
  1354. X#define MAL28_MSG    "Upload liefert keine Daten !"
  1355. X#define MAL28aMSG    "S, V, W, H"
  1356. X#define MAL29_MSG    'S'
  1357. X#define MAL30_MSG    'V'
  1358. X#define MAL31_MSG    'W'
  1359. X#define MAL31aMSG    'H'
  1360. X#define MAL32_MSG    "Sichern & Abschicken, Verwerfen, Weiterschreiben, Header editieren"
  1361. X#define MAL32aMSG    " Header editieren "
  1362. X#define MAL32bMSG    "Empfaenger"
  1363. X#define MAL32cMSG    "nicht bekannt!"
  1364. X#define MAL33_MSG    "Ok, keine Post verschicken ..."
  1365. X#define MAL34_MSG    "PM abgebrochen !"
  1366. X#define MAL35_MSG    "Momentchen ..."
  1367. X#define MAL36_MSG    "das war's !"
  1368. X#define MAL37_MSG    "verschickt"
  1369. X#define MAL38_MSG    "Der aktuelle Ansage-Text:"
  1370. X#define MAL39_MSG    "[ANSAGE] aendern?"
  1371. X#define MAL40_MSG    "Die aktuelle Unterschrift:"
  1372. X#define MAL41_MSG    "[UNTERSCHRIFT] aendern?"
  1373. X
  1374. X
  1375. X/* main.c */
  1376. X
  1377. X#define MAI01_MSG    "Teilnehmerdaten sichern"
  1378. X#define MAI02_MSG    "Verbindung beendet ..."
  1379. X#define MAI03_MSG    " Administration (Userdatenbank einrichten) "
  1380. X#define MAI04_MSG    "Es existiert keine USERDATENBANK. Desshalb wird diese Datenbank automatisch"
  1381. X#define MAI05_MSG    "erstellt. Die notwendigen Daten werden den Definitionen in 'mbox.h' ent-"  
  1382. X#define MAI06_MSG    "nommen."
  1383. X#define MAI07_MSG    "Diese neue Datenbank kann entweder mit dem Befehl 'admin' ueberarbeitet"  
  1384. X#define MAI08_MSG    "werden, oder aber durch Entfernen erneut initialisiert werden. Naehere Infor-" 
  1385. X#define MAI09_MSG    "mationen gibt's im TUTORIAL."
  1386. X#define MAI10_MSG       "Die USERDATENBANK ist jetzt einsatzfaehig. \"ix/MBox\" bitte erneut starten."
  1387. X#define MAI11_MSG    "Bye, bye, ..."
  1388. X
  1389. X
  1390. X/* makro.c */
  1391. X
  1392. X#define MAK01_MSG    "Folgende Makros wurden vereinbart:"
  1393. X#define MAK02_MSG    "[MAKROS] Aendern?"
  1394. X#define MAK03_MSG    "Makro definiert."
  1395. X#define MAK04_MSG    "<- Makro fehlerhaft!"
  1396. X
  1397. X
  1398. X/* mb-daemon.c */
  1399. X
  1400. X#define MBD01_MSG    "Neue Artikel"
  1401. X#define MBD02_MSG    "Bereits erfasste Artikel"
  1402. X#define MBD03_MSG    "Heute sind's"
  1403. X#define MBD04_MSG    "aktuelle Bretter mit"
  1404. X#define MBD05_MSG    "kBytes"
  1405. X#define MBD06_MSG    "In insgesamt"
  1406. X#define MBD07_MSG    "Gruppen gibt's"
  1407. X#define MBD08_MSG    "Artikel mit"
  1408. X#define MBD09_MSG    "kBytes"
  1409. X
  1410. X/* ?? mbrsh.c */
  1411. X
  1412. X/* misc.c */
  1413. X
  1414. X#define MIS01_MSG    "<- Keine aktuellen Bretter verfuegbar."
  1415. X#define MIS02_MSG    "ist keine NEWSGROUP !"
  1416. X#define MIS02aMSG    "Nicht erlaubt! (Siehe \"Followup-To:\")"
  1417. X#define MIS03_MSG    "            Von:"
  1418. X#define MIS04_MSG    "             An:"    
  1419. X#define MIS05_MSG    "        Betreff:"
  1420. X#define MIS06_MSG    "   Suchbegriffe:"
  1421. X#define MIS07_MSG    "Zusammenfassung:"
  1422. X#define MIS08_MSG    "S, U, V"
  1423. X#define MIS09_MSG    'S'
  1424. X#define MIS10_MSG    'U'
  1425. X#define MIS11_MSG    'V'
  1426. X#define MIS12_MSG    "Schreiben, per Upload uebertragen, Verwerfen & abbrechen"
  1427. X#define MIS13_MSG    "[Uebertragungs-Protokoll] A, [X], Y, Z"
  1428. X#define MIS14_MSG    "ASCII (Text), [X-Modem], Y-Modem (Batch), Z-Modem"
  1429. X#define MIS15_MSG    'A'
  1430. X#define MIS16_MSG     'X'
  1431. X#define MIS17_MSG    'Y'
  1432. X#define MIS18_MSG    'Z'
  1433. X#define MIS19_MSG    "Bitte starten sie die Uebetragung jetzt ... beenden mit CTRL-X !"
  1434. X#define MIS20_MSG    "Nix angekommen, kein neuer Artikel ..."
  1435. X#define MIS21_MSG    "Upload liefert keine Daten !"
  1436. X#define MIS22_MSG    "Binaerdatei"
  1437. X#define MIS23_MSG    "Textdatei"
  1438. X#define MIS24_MSG    "Bytes einer"
  1439. X#define MIS25_MSG    "uebertragen"
  1440. X#define MIS26_MSG    "Die effektive Uebertragungsrate betrug"
  1441. X#define MIS27_MSG    "S, V, W, H"
  1442. X#define MIS28_MSG    "S, V, H"
  1443. X#define MIS29_MSG    'S'
  1444. X#define MIS30_MSG    'V'
  1445. X#define MIS31_MSG    'W'
  1446. X#define MIS31aMSG    'H'
  1447. X#define MIS32_MSG    "Sichern & Abschicken, Verwerfen, Weiterschreiben, Header editieren"    
  1448. X#define MIS33_MSG    "Sichern & Abschicken, Verwerfen, Header editieren"
  1449. X#define MIS34_MSG    "Sicherung laeuft ..."
  1450. X#define MIS35_MSG    "Alles klar, kein neuer Artikel ..."
  1451. X#define MIS36_MSG    "Artikel abgebrochen !"
  1452. X#define MIS37_MSG    "Nachricht an"
  1453. X#define MIS38_MSG    "verschickt"
  1454. X#define MIS38aMSG    " Header editieren "
  1455. X#define MIS39_MSG    "Der Artikel ist in ca. 30 Sekunden verfuegbar."
  1456. X#define MIS40_MSG    "<- Argumente sind hier NICHT zulaessig ..."
  1457. X#define MIS41_MSG    "<- Argument fehlt/fehlerhaft ..."
  1458. X#define MIS42_MSG    "Message:"
  1459. X#define MIS43_MSG    "Artikel"
  1460. X#define MIS44_MSG    "Nachricht:"
  1461. X#define MIS45_MSG    "Persoenliche Nachricht"
  1462. X#define MIS46_MSG    "A, B, W, L, N, V"
  1463. X#define MIS47_MSG    'A'
  1464. X#define MIS48_MSG      'B'
  1465. X#define MIS49_MSG    'W'
  1466. X#define MIS50_MSG    'L'
  1467. X#define MIS51_MSG    'N'
  1468. X#define MIS52_MSG    'V'
  1469. X#define MIS53_MSG    "Abbrechen, Beantworten, Wiederholen, Loeschen, Naechste, Vorherige"
  1470. X#define MIS54_MSG    "[Wirklich loeschen]"
  1471. X#define MIS55_MSG    "In diesem Brett gibt es keine aktuelleren Artikel!"
  1472. X#define MIS56_MSG    "Es gibt keine aelteren Artikel!"
  1473. X#define MIS57_MSG    " Beantwortung in Bearbeitung (Pfad suchen etc. ...) "
  1474. X#define MIS58_MSG    "Momentchen, bitte ..."
  1475. X#define MIS59_MSG    "[Beantworten] A, B"
  1476. X#define MIS60_MSG    "Senden an Autor oder Brett ?"
  1477. X#define MIS61_MSG    'A'
  1478. X#define MIS62_MSG    'B'
  1479. X
  1480. X
  1481. X
  1482. X/* misc2.c */
  1483. X
  1484. X#define MI201_MSG    "<- Argument fehlt/fehlerhaft ..."
  1485. X#define MI202_MSG    "<- Nicht mit Level"
  1486. X#define MI203_MSG    "Der Index ist in ca. 30 Sekunden wieder verfuegbar."
  1487. X#define MI204_MSG    "Brett (Newsgroup):"
  1488. X#define MI205_MSG    " Bretter (Level"
  1489. X#define MI206_MSG    "Keine Bretter mit aktuellen Artikeln gefunden ..."
  1490. X#define MI207_MSG    "Brett"    
  1491. X#define MI208_MSG    
  1492. X#define MI209_MSG    
  1493. X#define MI210_MSG    "<- Kein Zugriff "
  1494. X#define MI211_MSG    "Index wird gebildet"
  1495. X
  1496. X
  1497. X/* nerror.c */
  1498. X
  1499. X#define NER01_MSG    "FEHLER:"
  1500. X#define NER02_MSG    "Fehler:"
  1501. X#define NER03_MSG    "abgebrochen"
  1502. X
  1503. X
  1504. X/* pd.c */
  1505. X
  1506. X#define PD01_MSG    "Die Datei kann nicht gelesen werden. Sie enthaelt ein ausfuehrbares Programm."
  1507. X#define PD02_MSG    "Inhalt der Datei:"
  1508. X#define PD03_MSG    "[PROGRAMM] Uebertragen?"
  1509. X#define PD04_MSG    'J'
  1510. X#define PD05_MSG    'N'
  1511. X#define PD06_MSG    'Q'
  1512. X#define PD07_MSG    "Uebertragungs-Protokoll"
  1513. X#define PD08_MSG    'A'
  1514. X#define PD09_MSG    'X'
  1515. X#define PD10_MSG    'Y'
  1516. X#define PD11_MSG    'Z'
  1517. X#define PD12_MSG    "ASCII (UUE), X-Modem, Y-Modem, Z-Modem"
  1518. X#define PD13_MSG    "Bitte starten Sie die Uebertragung jetzt ... Beenden mit CTRL-X !"
  1519. X#define PD14_MSG    "Uebertragung vermutlich (!) unterbrochen ..."
  1520. X#define PD15_MSG    "Bytes uebertragen"
  1521. X#define PD16_MSG    "Die effektive Uebertragungsrate betrug"
  1522. X#define PD17_MSG    "ABBRUCH"
  1523. X#define PD18_MSG    "Status (UserID"
  1524. X#define PD19_MSG    "Anschrift                  Alias(es)         Geburtsdatum     Telefon"
  1525. X#define PD20_MSG    "Terminal  Editor  Level  Bell  Prompt  More  Intro  Anrufe  Letzter Anruf"
  1526. X#define PD21_MSG    "Gesamtzeit (Min. Online)    Bytes (kB Upload)         Bytes (kB Download)"
  1527. X#define PD22_MSG    "UUCP-Adresse(n)                                       Account (gueltig bis)"
  1528. X#define PD23_MSG    "Subnet"
  1529. X#define PD24_MSG    "Bang"
  1530. X#define PD25_MSG    "Lokal"
  1531. X#define PD26_MSG    "Newsgroup(s)"
  1532. X#define PD27_MSG    " Statistik (Anrufe) "
  1533. X#define PD28_MSG       "Datum    \"Normaltarif\"  \"Billigtarif\"     Total    Diagramm"
  1534. X#define PD29_MSG    "<So>"
  1535. X#define PD30_MSG    "<Sa>"
  1536. X#define PD31_MSG    "Gesamt      "
  1537. X#define PD32_MSG    "Diagramm"
  1538. X#define PD33_MSG    "Die Zeile \"Gesamt\" bezieht sich auf die Anrufe der letzen"
  1539. X#define PD34_MSG    "Tage"
  1540. X#define PD35_MSG    "Transaktion beendet! Keine entsprechenden Artikel gefunden."
  1541. X#define PD36_MSG    "Artikel werden zusammengestellt. Momentchen"
  1542. X
  1543. X
  1544. X/* portinfo.c */
  1545. X
  1546. X#define POR01_MSG    " Portinfo (extern/intern) "
  1547. X#define POR02_MSG    "Teilnehmer                       Terminal   Login   Prozess"
  1548. X#define POR03_MSG    "Momentchen"
  1549. X#define POR04_MSG    " Level (Gesamtuebersicht) "
  1550. X#define POR05_MSG    "Option/Beschreibung     benoetigtes Level"
  1551. X#define POR06_MSG    "Besucher (GAST) ....................."
  1552. X#define POR07_MSG    "Schreiben (interne Post) ............"
  1553. X#define POR08_MSG    "Schreiben (externe Post) ............"
  1554. X#define POR09_MSG    "Schreiben (Artikel fuer NEWS) ......."
  1555. X#define POR10_MSG    "Schreiben (internationale Post) ....."
  1556. X#define POR11_MSG    "Freeware (Download) ................."
  1557. X#define POR12_MSG    "Freeware (Upload) ..................."
  1558. X#define POR13_MSG    "Betriebssystem (Shell-Zugriff) ......"
  1559. X#define POR14_MSG    "Administration (Postmeisterei) ......"
  1560. X#define POR15_MSG    "Und wir haben jetzt Level"
  1561. X#define POR15aMSG    " Userliste "
  1562. X#define POR16_MSG    "Teilnehmer                     Letzer Anruf   Anrufe   Online   Level   Account"
  1563. X#define POR17_MSG    "Momentchen ..."
  1564. X#define POR18_MSG    "Teilnehmer                        Upload       Download      Online"  
  1565. X#define POR18aMSG    "Teilnehmer                         ID     Account (gueltig bis)"
  1566. X#define POR19_MSG    "Teilnehmer mit <?> Markierung sollten unbedingt Ihre Angaben vervollstaendigen."
  1567. X#define POR20_MSG    "Alle mit {-} gekennzeichnete Eintraege werden beim naechsten Update geloescht."
  1568. X#define POR21_MSG    "Zur Zeit sind"
  1569. X#define POR22_MSG    "Teilnehmer eingetragen. Davon sind"
  1570. X#define POR23_MSG    "regelmaessig aktiv."
  1571. X#define POR24_MSG    "Ausserdem haben sich bisher"
  1572. X#define POR25_MSG    "Gaeste hier umgesehen."
  1573. X#define POR25aMSG    "Informationen ueber den externen Teilnehmer"
  1574. X#define POR25bMSG    "werden per UUCP auf"
  1575. X#define POR25cMSG    "angefordert"
  1576. X#define POR26_MSG    "Erwarten Sie die Antwort in den nexten Tagen in Ihrem Briefkasten!"
  1577. X#define POR27_MSG    "Teilnehmer nicht bekannt."
  1578. X#define POR28_MSG    "Userinformation"
  1579. X#define POR29_MSG    "       User-ID:"
  1580. X#define POR30_MSG    "      Username:"
  1581. X#define POR31_MSG    " Shell-Account:"
  1582. X#define POR32_MSG    "         Alias:"
  1583. X#define POR33_MSG    "      Internet:"
  1584. X#define POR34_MSG    "       Wohnort:"
  1585. X#define POR35_MSG    "       Strasse:"
  1586. X#define POR36_MSG    "       Telefon:"
  1587. X#define POR37_MSG    "  Geburtsdatum:"
  1588. X#define POR38_MSG    "Anrufe (total):"
  1589. X#define POR39_MSG    " Letzter Anruf:"
  1590. X#define POR40_MSG    "   Online Zeit:"
  1591. X#define POR41_MSG    "Stunden"
  1592. X#define POR41aMSG    " Account (bis):"
  1593. X#define POR42_MSG       "        Upload:"
  1594. X#define POR43_MSG    "kByte(s)"
  1595. X#define POR44_MSG    "      Download:"
  1596. X#define POR45_MSG    "   Nachrichten:"
  1597. X
  1598. X
  1599. X/* postfach.c */
  1600. X
  1601. X#define POS01_MSG    "<- Ein Postfach reicht doch, oder ?"
  1602. X#define POS02_MSG    
  1603. X#define POS03_MSG    "Gast"
  1604. X#define POS04_MSG    "User No.1"
  1605. X#define POS05_MSG    "User No.2"
  1606. X#define POS06_MSG    " Administration (POSTFACH einrichten) "
  1607. X#define POS07_MSG    "ACHTUNG, Ihre Angaben werden zu Verwaltungszwecken gespeichert und ausgewertet."
  1608. X#define POS08_MSG    "Der Systembetreiber uebernimmt keine Gewaehr fuer den Schutz der persoenlichen"
  1609. X#define POS09_MSG    "Daten. Benutzer mit \"LEVEL 0\" sind nicht verpflichtet alle Daten anzugeben !"
  1610. X#define POS10_MSG    "Vorname und Name (Username=Realname):"
  1611. X#define POS11_MSG    "Ok, ok, kein neues Postfach ..."
  1612. X#define POS12_MSG    "Ueberpruefung ... Momentchen, bitte ..."
  1613. X#define POS13_MSG    "bereits eingetragen !!!"
  1614. X#define POS14_MSG    "                            Passwort:"
  1615. X#define POS15_MSG    "Mindestens fuenf Zeichen !!!"
  1616. X#define POS16_MSG    "              Alias (fuer UUCP etc.):"
  1617. X#define POS17_MSG    "                     PLZ und Wohnort:"
  1618. X#define POS18_MSG    "              Strasse und Hausnummer:"
  1619. X#define POS19_MSG    "                     Telefon (VOICE):"
  1620. X#define POS20_MSG    "                      Telefon (DATA):"
  1621. X#define POS21_MSG    "                        Geburtsdatum:"
  1622. X#define POS22_MSG    "Fuer Sie wird jetzt ein vorlaeufiges POSTFACH eingerichtet. Sobald Ihre Angaben"
  1623. X#define POS23_MSG    "ueberprueft worden sind, wird Ihr \"LEVEL\" erhoeht."
  1624. X#define POS24_MSG    "Postfach wurde eingerichtet fuer"
  1625. X#define POS25_MSG    "Reorganisieren"    
  1626. X
  1627. X
  1628. X/* show.c */
  1629. X
  1630. X#define SHO01_MSG
  1631. X#define SHO02_MSG
  1632. X#define SHO03_MSG
  1633. X#define SHO04_MSG    "WEITER"
  1634. X#define SHO05_MSG    "Wiederholen, Abbrechen, Verlassen o. mit \"LEERTASTE\" weiterblaettern"
  1635. X#define SHO06_MSG    'V'
  1636. X#define SHO07_MSG    'X'
  1637. X#define SHO08_MSG    'Q'
  1638. X#define SHO09_MSG    'A'
  1639. X#define SHO10_MSG    'W'
  1640. X#define SHO11_MSG    "Wiederholung ..."
  1641. X#define SHO12_MSG    "Seite"
  1642. X
  1643. X
  1644. X/* suchen.c */
  1645. X
  1646. X#define SUC01_MSG    "Suchmuster:"
  1647. X#define SUC02_MSG    "Dann eben(d) nicht!"
  1648. X#define SUC03_MSG    "Suche nach"
  1649. X#define SUC04_MSG    "in"
  1650. X#define SUC05_MSG    "Momentchen"
  1651. X#define SUC06_MSG    "Keine Artikel mit dem Suchmuster"    
  1652. X#define SUC07_MSG    "gefunden."    
  1653. X
  1654. X
  1655. X/* tools.c */
  1656. X
  1657. X#define TOL01_MSG    "Sonntag"
  1658. X#define TOL02_MSG    "Montag"
  1659. X#define TOL03_MSG    "Dienstag"
  1660. X#define TOL04_MSG    "Mittwoch"
  1661. X#define TOL05_MSG    "Donnerstag"
  1662. X#define TOL06_MSG    "Freitag"
  1663. X#define TOL07_MSG    "Samstag"
  1664. X#define TOL08_MSG    "Momentchen"
  1665. X
  1666. X
  1667. X/* weiterl.c */
  1668. X
  1669. X#define WEI01_MSG    "<- Keine Nachricht gespeichert."
  1670. X#define WEI02_MSG    "Gespeicherte Nachricht(en):"
  1671. X#define WEI03_MSG    "Betreff:"
  1672. X#define WEI04_MSG    "<- Artikel nicht gefunden."
  1673. X
  1674. X
  1675. X/* xmd.c */
  1676. X
  1677. X#define XMD01_MSG    "Brief von einem \"externen\" Teilnehmer"
  1678. X#define XMD02_MSG    "---------  Nachricht folgt  ---------"
  1679. X
  1680. X
  1681. X/*  G L O B A L  */
  1682. X
  1683. X#define GBL01_MSG    "Autor:"
  1684. X#define GBL02_MSG    "Datum:"
  1685. X#define GBL03_MSG    "Betreff:"
  1686. X
  1687. X#define GBL04_MSG    "Username:"
  1688. X#define GBL05_MSG    "No.   Kommentar                   Autor                 Datum     Zeit   Zeilen" 
  1689. X
  1690. X#define GBL06_MSG    'J'     /* JA !!!!! */
  1691. X#define GBL07_MSG    'N'    /* NEIN !!! */
  1692. X
  1693. X#define GBL08_MSG    "No.   Kommentar                   Autor                 Datum     Zeit   kBytes"   
  1694. X
  1695. X#define GBL09_MSG    "Passwort:"
  1696. X
  1697. X#define GBL10_MSG    "gast"
  1698. END_OF_FILE
  1699.   if test 25229 -ne `wc -c <'src/mbox.msg'`; then
  1700.     echo shar: \"'src/mbox.msg'\" unpacked with wrong size!
  1701.   fi
  1702.   # end of 'src/mbox.msg'
  1703. fi
  1704. echo shar: End of archive 2 \(of 10\).
  1705. cp /dev/null ark2isdone
  1706. MISSING=""
  1707. for I in 1 2 3 4 5 6 7 8 9 10 ; do
  1708.     if test ! -f ark${I}isdone ; then
  1709.     MISSING="${MISSING} ${I}"
  1710.     fi
  1711. done
  1712. if test "${MISSING}" = "" ; then
  1713.     echo You have unpacked all 10 archives.
  1714.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1715. else
  1716.     echo You still must unpack the following archives:
  1717.     echo "        " ${MISSING}
  1718. fi
  1719. exit 0
  1720. exit 0 # Just in case...
  1721.