diff options
Diffstat (limited to 'berkeley/lpr.c')
-rw-r--r-- | berkeley/lpr.c | 67 |
1 files changed, 56 insertions, 11 deletions
diff --git a/berkeley/lpr.c b/berkeley/lpr.c index d4fc519e2..a9aed3ca4 100644 --- a/berkeley/lpr.c +++ b/berkeley/lpr.c @@ -1,10 +1,11 @@ /* * "lpr" command for CUPS. * - * Copyright 2007-2017 by Apple Inc. - * Copyright 1997-2007 by Easy Software Products. + * Copyright © 2007-2018 by Apple Inc. + * Copyright © 1997-2007 by Easy Software Products. * - * Licensed under Apache License v2.0. See the file "LICENSE" for more information. + * Licensed under Apache License v2.0. See the file "LICENSE" for more + * information. */ /* @@ -15,6 +16,13 @@ /* + * Local functions... + */ + +static void usage(void) _CUPS_NORETURN; + + +/* * 'main()' - Parse options and send files for printing. */ @@ -51,7 +59,9 @@ main(int argc, /* I - Number of command-line arguments */ for (i = 1; i < argc; i ++) { - if (argv[i][0] == '-') + if (!strcmp(argv[i], "--help")) + usage(); + else if (argv[i][0] == '-') { for (opt = argv[i] + 1; *opt; opt ++) { @@ -77,7 +87,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected username after \"-U\" option."), argv[0]); - return (1); + usage(); } cupsSetUser(argv[i]); @@ -97,7 +107,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected hostname after \"-H\" option."), argv[0]); - return (1); + usage(); } else cupsSetServer(argv[i]); @@ -123,7 +133,7 @@ main(int argc, /* I - Number of command-line arguments */ _cupsLangPrintf(stderr, _("%s: Error - expected value after \"-%c\" " "option."), argv[0], ch); - return (1); + usage(); } } @@ -149,7 +159,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected option=value after \"-o\" option."), argv[0]); - return (1); + usage(); } num_options = cupsParseOptions(argv[i], num_options, &options); @@ -200,7 +210,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected destination after \"-P\" option."), argv[0]); - return (1); + usage(); } printer = argv[i]; @@ -238,7 +248,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected copies after \"-#\" option."), argv[0]); - return (1); + usage(); } num_copies = atoi(argv[i]); @@ -268,7 +278,7 @@ main(int argc, /* I - Number of command-line arguments */ if (i >= argc) { _cupsLangPrintf(stderr, _("%s: Error - expected name after \"-%c\" option."), argv[0], ch); - return (1); + usage(); } title = argv[i]; @@ -408,3 +418,38 @@ main(int argc, /* I - Number of command-line arguments */ return (0); } + + +/* + * 'usage()' - Show program usage and exit. + */ + +static void +usage(void) +{ + _cupsLangPuts(stdout, _("Usage: lpr [options] [file(s)]")); + _cupsLangPuts(stdout, _("Options:")); + _cupsLangPuts(stdout, _("-# num-copies Specify the number of copies to print")); + _cupsLangPuts(stdout, _("-E Encrypt the connection to the server")); + _cupsLangPuts(stdout, _("-H server[:port] Connect to the named server and port")); + _cupsLangPuts(stdout, _("-m Send an email notification when the job completes")); + _cupsLangPuts(stdout, _("-o option[=value] Specify a printer-specific option")); + _cupsLangPuts(stdout, _("-o job-sheets=standard Print a banner page with the job")); + _cupsLangPuts(stdout, _("-o media=size Specify the media size to use")); + _cupsLangPuts(stdout, _("-o number-up=N Specify that input pages should be printed N-up (1, 2, 4, 6, 9, and 16 are supported)")); + _cupsLangPuts(stdout, _("-o orientation-requested=N\n" + " Specify portrait (3) or landscape (4) orientation")); + _cupsLangPuts(stdout, _("-o print-quality=N Specify the print quality - draft (3), normal (4), or best (5)")); + _cupsLangPuts(stdout, _("-o sides=one-sided Specify 1-sided printing")); + _cupsLangPuts(stdout, _("-o sides=two-sided-long-edge\n" + " Specify 2-sided portrait printing")); + _cupsLangPuts(stdout, _("-o sides=two-sided-short-edge\n" + " Specify 2-sided landscape printing")); + _cupsLangPuts(stdout, _("-q Specify the job should be held for printing")); + _cupsLangPuts(stdout, _("-r Remove the file(s) after submission")); + _cupsLangPuts(stdout, _("-P destination Specify the destination")); + _cupsLangPuts(stdout, _("-T title Specify the job title")); + _cupsLangPuts(stdout, _("-U username Specify the username to use for authentication")); + + exit(1); +} |