2N/A
2N/A/* : : generated by proto : : */
2N/A/***********************************************************************
2N/A* *
2N/A* This software is part of the ast package *
2N/A* Copyright (c) 1992-2011 AT&T Intellectual Property *
2N/A* and is licensed under the *
2N/A* Common Public License, Version 1.0 *
2N/A* by AT&T Intellectual Property *
2N/A* *
2N/A* A copy of the License is available at *
2N/A* http://www.opensource.org/licenses/cpl1.0.txt *
2N/A* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
2N/A* *
2N/A* Information and Software Systems Research *
2N/A* AT&T Research *
2N/A* Florham Park NJ *
2N/A* *
2N/A* Glenn Fowler <gsf@research.att.com> *
2N/A* David Korn <dgk@research.att.com> *
2N/A* *
2N/A***********************************************************************/
2N/A
2N/A/*
2N/A * AT&T Research
2N/A *
2N/A * builtin cmd definitions
2N/A */
2N/A
2N/A#ifndef _CMD_H
2N/A#if !defined(__PROTO__)
2N/A#include <prototyped.h>
2N/A#endif
2N/A#if !defined(__LINKAGE__)
2N/A#define __LINKAGE__ /* 2004-08-11 transition */
2N/A#endif
2N/A
2N/A#define _CMD_H
2N/A
2N/A#include <ast.h>
2N/A#include <error.h>
2N/A#include <stak.h>
2N/A#include <shcmd.h>
2N/A
2N/A#define cmdinit _cmd_init
2N/A
2N/A#define ERROR_CALLBACK ERROR_SET
2N/A
2N/A#if _BLD_cmd && defined(__EXPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __EXPORT__
2N/A#endif
2N/A
2N/A#include <cmdext.h>
2N/A
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__
2N/A
2N/A#if defined(CMD_BUILTIN) && !defined(CMD_STANDALONE)
2N/A#define CMD_STANDALONE CMD_BUILTIN
2N/A#endif
2N/A
2N/A#ifdef CMD_STANDALONE
2N/A
2N/A#define CMD_CONTEXT(c) ((Shbltin_t*)0)
2N/A
2N/A#if CMD_DYNAMIC
2N/A
2N/A#include <dlldefs.h>
2N/A
2N/A#else
2N/A
2N/Aextern __MANGLE__ int CMD_STANDALONE __PROTO__((int, char**, __V_*));
2N/A
2N/A#endif
2N/A
2N/A#ifndef CMD_BUILTIN
2N/A
2N/A/*
2N/A * command initialization
2N/A */
2N/A
2N/Astatic int
2N/Acmdinit __PARAM__((int argc, register char** argv, __V_* context, const char* catalog, int flags), (argc, argv, context, catalog, flags)) __OTORP__(int argc; register char** argv; __V_* context; const char* catalog; int flags;){
2N/A register char* cp;
2N/A register char* pp;
2N/A
2N/A if (cp = strrchr(argv[0], '/'))
2N/A cp++;
2N/A else
2N/A cp = argv[0];
2N/A if (pp = strrchr(cp, '_'))
2N/A cp = pp + 1;
2N/A error_info.id = cp;
2N/A if (!error_info.catalog)
2N/A error_info.catalog = (char*)catalog;
2N/A opt_info.index = 0;
2N/A if (context)
2N/A error_info.flags |= flags & ~(ERROR_CALLBACK|ERROR_NOTIFY);
2N/A return 0;
2N/A}
2N/A
2N/A#endif
2N/A
2N/Aint
2N/Amain __PARAM__((int argc, char** argv), (argc, argv)) __OTORP__(int argc; char** argv;){
2N/A#if CMD_DYNAMIC
2N/A register char* s;
2N/A register char* t;
2N/A __V_* dll;
2N/A Shbltin_f fun;
2N/A char buf[64];
2N/A
2N/A if (s = strrchr(argv[0], '/'))
2N/A s++;
2N/A else if (!(s = argv[0]))
2N/A return 127;
2N/A if ((t = strrchr(s, '_')) && *++t)
2N/A s = t;
2N/A buf[0] = '_';
2N/A buf[1] = 'b';
2N/A buf[2] = '_';
2N/A strncpy(buf + 3, s, sizeof(buf) - 4);
2N/A buf[sizeof(buf) - 1] = 0;
2N/A if (t = strchr(buf, '.'))
2N/A *t = 0;
2N/A for (;;)
2N/A {
2N/A if (dll = dlopen(NiL, RTLD_LAZY))
2N/A {
2N/A if (fun = (Shbltin_f)dlsym(dll, buf + 1))
2N/A break;
2N/A if (fun = (Shbltin_f)dlsym(dll, buf))
2N/A break;
2N/A }
2N/A if (dll = dllplug(NiL, "cmd", NiL, RTLD_LAZY, NiL, 0))
2N/A {
2N/A if (fun = (Shbltin_f)dlsym(dll, buf + 1))
2N/A break;
2N/A if (fun = (Shbltin_f)dlsym(dll, buf))
2N/A break;
2N/A }
2N/A return 127;
2N/A }
2N/A return (*fun)(argc, argv, NiL);
2N/A#else
2N/A return CMD_STANDALONE(argc, argv, NiL);
2N/A#endif
2N/A}
2N/A
2N/A#else
2N/A
2N/A#undef cmdinit
2N/A#ifdef _MSC_VER
2N/A#define CMD_CONTEXT(p) ((Shbltin_t*)(p))
2N/A#define cmdinit(a,b,c,d,e) do{if(_cmd_init(a,b,c,d,e))return -1;}while(0)
2N/A#else
2N/A#define CMD_CONTEXT(p) (((p)&&((Shbltin_t*)(p))->version>=20071012&&((Shbltin_t*)(p))->version<20350101)?((Shbltin_t*)(p)):0)
2N/A#define cmdinit(a,b,c,d,e) do{if((c)&&!CMD_CONTEXT(c))c=0;if(_cmd_init(a,b,c,d,e))return -1;}while(0)
2N/A#endif
2N/A
2N/A#if _BLD_cmd && defined(__EXPORT__)
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__ __EXPORT__
2N/A#endif
2N/A
2N/Aextern __MANGLE__ int _cmd_init __PROTO__((int, char**, __V_*, const char*, int));
2N/A
2N/A#undef __MANGLE__
2N/A#define __MANGLE__ __LINKAGE__
2N/A
2N/A#endif
2N/A
2N/A#endif
2N/A