diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2001-03-24 00:14:39 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2001-03-24 00:14:39 +0000 |
commit | ffb72f990c9933280de104024acf91acee02c1a5 (patch) | |
tree | 8312fd465c763b17886e6e1795ab48bde45c2381 /sbin/pdisk/errors.c | |
parent | fa5275b22eb94a7d990e643d54768420845d618c (diff) |
Import of pdisk from apple, BSD licensed code. Archive dated Feb 18 1998
This is a HFS partition editing tool.
Diffstat (limited to 'sbin/pdisk/errors.c')
-rw-r--r-- | sbin/pdisk/errors.c | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/sbin/pdisk/errors.c b/sbin/pdisk/errors.c new file mode 100644 index 00000000000..9f4051cc98d --- /dev/null +++ b/sbin/pdisk/errors.c @@ -0,0 +1,169 @@ +// +// errors.c - error & help routines +// +// Written by Eryk Vershen (eryk@apple.com) +// + +/* + * Copyright 1996,1997,1998 by Apple Computer, Inc. + * All Rights Reserved + * + * Permission to use, copy, modify, and distribute this software and + * its documentation for any purpose and without fee is hereby granted, + * provided that the above copyright notice appears in all copies and + * that both the copyright notice and this permission notice appear in + * supporting documentation. + * + * APPLE COMPUTER DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE. + * + * IN NO EVENT SHALL APPLE COMPUTER BE LIABLE FOR ANY SPECIAL, INDIRECT, OR + * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT, + * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION + * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +// for *printf() +#include <stdio.h> + +// for exit() +#ifndef __linux__ +#include <stdlib.h> +#endif +// for strrchr +#include <string.h> + +// for va_start(), etc. +#include <stdarg.h> + +#include "errors.h" + + +// +// Defines +// + + +// +// Types +// + + +// +// Global Constants +// + + +// +// Global Variables +// +char *program_name; +#ifdef NeXT +extern int errno; +extern int sys_nerr; +extern const char * const sys_errlist[]; +#endif + + +// +// Forward declarations +// + + +// +// Routines +// +void +init_program_name(char **argv) +{ +#ifdef __linux__ + if ((program_name = strrchr(argv[0], '/')) != (char *)NULL) { + program_name++; + } else { + program_name = argv[0]; + } +#else + program_name = "pdisk"; +#endif +} + + +void +do_help() +{ + printf("\t%s [-h|--help]\n", program_name); + printf("\t%s [-v|--version]\n", program_name); + printf("\t%s [-l|--list [name ...]]\n", program_name); + printf("\t%s [-r|--readonly] name ...\n", program_name); + printf("\t%s [-i|--interactive]\n", program_name); + printf("\t%s name ...\n", program_name); +} + + +void +usage(char *kind) +{ + error(-1, "bad usage - %s\n", kind); + hflag = 1; +} + + +// +// Print a message on standard error and exit with value. +// Values in the range of system error numbers will add +// the perror(3) message. +// +void +fatal(int value, char *fmt, ...) +{ + va_list ap; + + fprintf(stderr, "%s: ", program_name); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + +#if defined(__linux__) || defined(NeXT) + if (value > 0 && value < sys_nerr) { + fprintf(stderr, " (%s)\n", sys_errlist[value]); + } else { + fprintf(stderr, "\n"); + } +#else + fprintf(stderr, "\n"); +#endif + +#ifndef __linux__ + printf("Processing stopped: Choose 'Quit' from the file menu to quit.\n\n"); +#endif + exit(value); +} + + +// +// Print a message on standard error. +// Values in the range of system error numbers will add +// the perror(3) message. +// +void +error(int value, char *fmt, ...) +{ + va_list ap; + + fprintf(stderr, "%s: ", program_name); + va_start(ap, fmt); + vfprintf(stderr, fmt, ap); + va_end(ap); + +#if defined(__linux__) || defined(NeXT) + if (value > 0 && value < sys_nerr) { + fprintf(stderr, " (%s)\n", sys_errlist[value]); + } else { + fprintf(stderr, "\n"); + } +#else + fprintf(stderr, "\n"); +#endif +} |