1
0

reddit help

This commit is contained in:
dtb 2022-05-26 20:08:02 -04:00
parent 5988fb5cf5
commit 3c9e71145e

View File

@ -3,6 +3,8 @@
#include <unistd.h> #include <unistd.h>
#include "usefulmacros.h" #include "usefulmacros.h"
/* Thanks to u/smcameron on Reddit. */
#define TAB_WIDTH 8 #define TAB_WIDTH 8
/* Changing ENUM to DEFINE will make this output the traditional BSD header /* Changing ENUM to DEFINE will make this output the traditional BSD header
@ -36,74 +38,74 @@ static const struct {
}sysexits[] = { }sysexits[] = {
/* sysexit descriptions copied from FreeBSD's sysexits(3). */ /* sysexit descriptions copied from FreeBSD's sysexits(3). */
"All is well.", /* except this one */ { "All is well.", /* except this one */
"EX_OK", 0, "EX_OK", 0 },
"The command was used incorrectly, e.g., with the wrong number of" { "The command was used incorrectly, e.g., with the wrong number of"
" arguments, a bad flag, a bad syntax in a parameter, or whatever.", " arguments, a bad flag, a bad syntax in a parameter, or whatever.",
"EX_USAGE", 64, "EX_USAGE", 64 },
"The input data was incorrect in some way. This should only be used" { "The input data was incorrect in some way. This should only be used"
" for user's data and not system files.", " for user's data and not system files.",
"EX_DATAERR", 65, "EX_DATAERR", 65 },
"An input file (not a system file) did not exist or was not readable." { "An input file (not a system file) did not exist or was not readable."
" This could also include errors like \"No message\" to a mailer (if it" " This could also include errors like \"No message\" to a mailer (if it"
" cared to catch it).", " cared to catch it).",
"EX_NOINPUT", 66, "EX_NOINPUT", 66 },
"The user specified did not exist. This might be used for mail" { "The user specified did not exist. This might be used for mail"
" addresses or remote logins.", " addresses or remote logins.",
"EX_NOUSER", 67, "EX_NOUSER", 67 },
"The host specified did not exist. This is used in mail addresses or" { "The host specified did not exist. This is used in mail addresses or"
" network requests.", " network requests.",
"EX_NOHOST", 68, "EX_NOHOST", 68 },
"A service is unavailable. This can occur if a support program or" { "A service is unavailable. This can occur if a support program or"
" file does not exist. This can also be used as a catchall message" " file does not exist. This can also be used as a catchall message"
" when something you wanted to do does not work, but you do not know" " when something you wanted to do does not work, but you do not know"
" why.", " why.",
"EX_UNAVAILABLE", 69, "EX_UNAVAILABLE", 69 },
"An internal software error has been detected. This should be limited" { "An internal software error has been detected. This should be limited"
" to non-operating system related errors as possible.", " to non-operating system related errors as possible.",
"EX_SOFTWARE", 70, "EX_SOFTWARE", 70 },
"An operating system error has been detected. This is intended to be" { "An operating system error has been detected. This is intended to be"
" used for such things as \"cannot fork\", \"cannot create pipe\", or" " used for such things as \"cannot fork\", \"cannot create pipe\", or"
" the like. It includes things like getuid returning a user that does" " the like. It includes things like getuid returning a user that does"
" not exist in the passwd file.", " not exist in the passwd file.",
"EX_OSERR", 71, "EX_OSERR", 71 },
"Some system file (e.g., /etc/passwd, /var/run/utx.active, etc.) does" { "Some system file (e.g., /etc/passwd, /var/run/utx.active, etc.) does"
" not exist, cannot be opened, or has some sort of error (e.g., syntax" " not exist, cannot be opened, or has some sort of error (e.g., syntax"
" error).", " error).",
"EX_OSFILE", 72, "EX_OSFILE", 72 },
"A (user specified) output file cannot be created.", { "A (user specified) output file cannot be created.",
"EX_CANTCREAT", 73, "EX_CANTCREAT", 73 },
"An error occurred while doing I/O on some file.", { "An error occurred while doing I/O on some file.",
"EX_IOERR", 74, "EX_IOERR", 74 },
"Temporary failure, indicating something that is not really an error." { "Temporary failure, indicating something that is not really an error."
" In sendmail, this means that a mailer (e.g.) could not create a" " In sendmail, this means that a mailer (e.g.) could not create a"
" connection, and the request should be reattempted later.", " connection, and the request should be reattempted later.",
"EX_TEMPFAIL", 75, "EX_TEMPFAIL", 75 },
"The remote system returned something that was \"not possible\" during a" { "The remote system returned something that was \"not possible\" during a"
" protocol exchange.", " protocol exchange.",
"EX_PROTOCOL", 76, "EX_PROTOCOL", 76 },
"You did not have sufficient permission to perform the operation." { "You did not have sufficient permission to perform the operation."
" This is not intended for file system problems, which should use" " This is not intended for file system problems, which should use"
" EX_NOINPUT or EX_CANTCREAT, but rather for higher level" " EX_NOINPUT or EX_CANTCREAT, but rather for higher level"
" permissions.", " permissions.",
"EX_NOPERM", 77, "EX_NOPERM", 77 },
"Something was found in an unconfigured or misconfigured state.", { "Something was found in an unconfigured or misconfigured state.",
"EX_CONFIG", 78 "EX_CONFIG", 78 }
}; };
static const char header_suffix[] = static const char header_suffix[] =
@ -113,13 +115,11 @@ static const char header_suffix[] =
static size_t i; static size_t i;
/*
static int findbyint(int status){ static int findbyint(int status){
for(i = 0; i < ARRAYLEN(sysexits); ++i) for(i = 0; i < ARRAYLEN(sysexits); ++i)
if(sysexits[i].status == status) if(sysexits[i].status == status)
return i; return i;
} }
*/
static void output_comment(int fd, int indentation, int width, char *comment){ static void output_comment(int fd, int indentation, int width, char *comment){
size_t word_start; size_t word_start;