Argsobj.c
Click here to get the file
Size
1.6 kB
-
File type
text/plain
File contents
/*ident "@(#)Args:Argsobj.c 3.1" */
/******************************************************************************
*
* C++ Standard Components, Release 3.0.
*
* Copyright (c) 1991, 1992 AT&T and Unix System Laboratories, Inc.
* Copyright (c) 1988, 1989, 1990 AT&T. All Rights Reserved.
*
* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T and Unix System
* Laboratories, Inc. The copyright notice above does not evidence
* any actual or intended publication of such source code.
*
******************************************************************************/
#include "Argslib.h"
static const char*
flagopt(char flag, char option) {
static char buf[3];
buf[0] = flag;
buf[1] = option;
buf[2] = nul;
return buf;
}
void
Args::unexpected_opt_err(char flag, char option) {
opterr = 1;
const char* p = flagopt(flag, option);
if (unexpected_opt.raise(p) == 0) {
write(2, progname_, strlen(progname_));
write(2, ": unexpected option ", 20);
write(2, p, 2);
write(2, " (ignored)\n", 11);
}
}
void
Args::missing_val_err(char flag, const char* option, int iskey) {
opterr = 1;
const char* p = (iskey? option-1 : flagopt(flag, *option));
if (missing_val.raise(p) == 0) {
write(2, progname_, strlen(progname_));
write(2, ": value missing for ", 20);
write(2, p, 2);
write(2, " (", 2);
write(2, p, 2);
write(2, " ignored)\n", 10);
}
}
void
Args::opt_as_val_err(const char* value) {
if (opt_as_val.raise(value) == 0) {
}
}
void
Args::missing_opt_err() {
opterr = 1;
if (missing_opt.raise("") == 0) {
write(2, progname_, strlen(progname_));
write(2, ": missing option\n", 17);
}
}