from.c (9b50d9027575220cb6dd09b3e62f03f511e908b8) from.c (98d04b7c6888c429582660d613d7142b6aea6967)
1/*
2 * Copyright (c) 1980, 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 31 unchanged lines hidden (view full) ---

40#ifndef lint
41static char sccsid[] = "@(#)from.c 8.1 (Berkeley) 6/6/93";
42#endif /* not lint */
43
44#include <sys/types.h>
45#include <ctype.h>
46#include <pwd.h>
47#include <stdio.h>
1/*
2 * Copyright (c) 1980, 1988, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 31 unchanged lines hidden (view full) ---

40#ifndef lint
41static char sccsid[] = "@(#)from.c 8.1 (Berkeley) 6/6/93";
42#endif /* not lint */
43
44#include <sys/types.h>
45#include <ctype.h>
46#include <pwd.h>
47#include <stdio.h>
48#include <string.h>
48#include <paths.h>
49
50main(argc, argv)
51 int argc;
52 char **argv;
53{
54 extern char *optarg;
55 extern int optind;
56 struct passwd *pwd;
57 int ch, newline;
58 char *file, *sender, *p;
59#if MAXPATHLEN > BUFSIZ
60 char buf[MAXPATHLEN];
61#else
62 char buf[BUFSIZ];
63#endif
64
65 file = sender = NULL;
49#include <paths.h>
50
51main(argc, argv)
52 int argc;
53 char **argv;
54{
55 extern char *optarg;
56 extern int optind;
57 struct passwd *pwd;
58 int ch, newline;
59 char *file, *sender, *p;
60#if MAXPATHLEN > BUFSIZ
61 char buf[MAXPATHLEN];
62#else
63 char buf[BUFSIZ];
64#endif
65
66 file = sender = NULL;
66 while ((ch = getopt(argc, argv, "f:s:")) != EOF)
67 while ((ch = getopt(argc, argv, "f:s:?")) != EOF)
67 switch((char)ch) {
68 case 'f':
69 file = optarg;
70 break;
71 case 's':
72 sender = optarg;
73 for (p = sender; *p; ++p)
74 if (isupper(*p))

--- 13 unchanged lines hidden (view full) ---

88 "from: no password file entry for you.\n");
89 exit(1);
90 }
91 file = pwd->pw_name;
92 }
93 (void)sprintf(buf, "%s/%s", _PATH_MAILDIR, file);
94 file = buf;
95 }
68 switch((char)ch) {
69 case 'f':
70 file = optarg;
71 break;
72 case 's':
73 sender = optarg;
74 for (p = sender; *p; ++p)
75 if (isupper(*p))

--- 13 unchanged lines hidden (view full) ---

89 "from: no password file entry for you.\n");
90 exit(1);
91 }
92 file = pwd->pw_name;
93 }
94 (void)sprintf(buf, "%s/%s", _PATH_MAILDIR, file);
95 file = buf;
96 }
96 if (!freopen(file, "r", stdin)) {
97
98 /* read from stdin */
99 if (strcmp(file, "-") == 0) {
100 }
101 else if (!freopen(file, "r", stdin)) {
97 fprintf(stderr, "from: can't read %s.\n", file);
98 exit(1);
99 }
100 for (newline = 1; fgets(buf, sizeof(buf), stdin);) {
101 if (*buf == '\n') {
102 newline = 1;
103 continue;
104 }

--- 32 unchanged lines hidden ---
102 fprintf(stderr, "from: can't read %s.\n", file);
103 exit(1);
104 }
105 for (newline = 1; fgets(buf, sizeof(buf), stdin);) {
106 if (*buf == '\n') {
107 newline = 1;
108 continue;
109 }

--- 32 unchanged lines hidden ---