1/***********************************************************************
2*                                                                      *
3*               This software is part of the ast package               *
4*          Copyright (c) 1992-2010 AT&T Intellectual Property          *
5*                      and is licensed under the                       *
6*                  Common Public License, Version 1.0                  *
7*                    by AT&T Intellectual Property                     *
8*                                                                      *
9*                A copy of the License is available at                 *
10*            http://www.opensource.org/licenses/cpl1.0.txt             *
11*         (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9)         *
12*                                                                      *
13*              Information and Software Systems Research               *
14*                            AT&T Research                             *
15*                           Florham Park NJ                            *
16*                                                                      *
17*                 Glenn Fowler <gsf@research.att.com>                  *
18*                  David Korn <dgk@research.att.com>                   *
19*                                                                      *
20***********************************************************************/
21#pragma prototyped
22/*
23 * command initialization
24 */
25
26#include <cmd.h>
27#include <shcmd.h>
28
29int
30_cmd_init(int argc, char** argv, void* context, const char* catalog, int flags)
31{
32	register char*	cp;
33
34	if (argc <= 0)
35		return -1;
36	if (context)
37	{
38		if (flags & ERROR_CALLBACK)
39		{
40			flags &= ~ERROR_CALLBACK;
41			flags |= ERROR_NOTIFY;
42		}
43		else if (flags & ERROR_NOTIFY)
44		{
45			((Shbltin_t*)(context))->notify = 1;
46			flags &= ~ERROR_NOTIFY;
47		}
48		error_info.flags |= flags;
49	}
50	if (cp = strrchr(argv[0], '/'))
51		cp++;
52	else
53		cp = argv[0];
54	error_info.id = cp;
55	if (!error_info.catalog)
56		error_info.catalog = catalog;
57	opt_info.index = 0;
58	return 0;
59}
60
61#if __OBSOLETE__ < 20080101
62
63#if defined(__EXPORT__)
64#define extern	__EXPORT__
65#endif
66
67#undef	cmdinit
68
69extern void
70cmdinit(char** argv, void* context, const char* catalog, int flags)
71{
72	_cmd_init(0, argv, context, catalog, flags);
73}
74
75#endif
76