This is shell_arg.c in view mode; [Download] [Up]
//------------------------------------------------------------------------ // ^FILE: shell_arg.c - implement a shell-script argument // // ^DESCRIPTION: // This file implements the base class that is used for all // shell-script command arguments. // // ^HISTORY: // 04/22/92 Brad Appleton <brad@ssd.csd.harris.com> Created //-^^--------------------------------------------------------------------- #include <stdlib.h> #include <iostream.h> #include <string.h> #include <ctype.h> #include "shell_arg.h" //----------------------------------------------------------------- initialize void ShellCmdArg::initialize(const char * variable_name) { if (is_array()) { shell_array = new ShellArray(variable_name) ; } else { shell_variable = new ShellVariable(variable_name) ; } } //---------------------------------------------------------------- constructors ShellCmdArg::ShellCmdArg(char * variable_name, char optchar, char * keyword, char * value, char * description, unsigned syntax_flags) : CmdArg(optchar, keyword, value, description, syntax_flags), sca_name(variable_name), sca_keyword(keyword), sca_value(value), sca_description(description) { initialize(variable_name); } ShellCmdArg::ShellCmdArg(char * variable_name, char optchar, char * keyword, char * description, unsigned syntax_flags) : CmdArg(optchar, keyword, description, syntax_flags), sca_name(variable_name), sca_keyword(keyword), sca_value(NULL), sca_description(description) { initialize(variable_name); } ShellCmdArg::ShellCmdArg(char * variable_name, char * value, char * description, unsigned syntax_flags) : CmdArg(value, description, syntax_flags), sca_name(variable_name), sca_keyword(NULL), sca_value(value), sca_description(description) { initialize(variable_name); } //------------------------------------------------------------------ destructor ShellCmdArg::~ShellCmdArg(void) { if (is_array()) { delete shell_array ; } else { delete shell_variable ; } delete [] sca_name ; delete [] sca_keyword ; delete [] sca_value ; delete [] sca_description ; } //-------------------------------------------------------------------- is_array int ShellCmdArg::is_array(void) const { return (syntax() & CmdArg::isLIST) ; } //------------------------------------------------------------------------- set void ShellCmdArg::set(const char * value) { if (is_array()) { shell_array->append(value); } else { shell_variable->set(value); } }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.