Initial import of the CDE 2.1.30 sources from the Open Group.
This commit is contained in:
105
cde/programs/dtudcfonted/libfal/_fallcPubWrap.c
Normal file
105
cde/programs/dtudcfonted/libfal/_fallcPubWrap.c
Normal file
@@ -0,0 +1,105 @@
|
||||
/* lcPubWrap.c 1.1 - Fujitsu source for CDEnext 95/11/06 20:32:39 */
|
||||
/* $XConsortium: _fallcPubWrap.c /main/1 1996/04/08 15:18:09 cde-fuj $ */
|
||||
/*
|
||||
* Copyright 1992, 1993 by TOSHIBA Corp.
|
||||
*
|
||||
* 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 appear in all copies and that both that
|
||||
* copyright notice and this permission notice appear in supporting
|
||||
* documentation, and that the name of TOSHIBA not be used in advertising
|
||||
* or publicity pertaining to distribution of the software without specific,
|
||||
* written prior permission. TOSHIBA make no representations about the
|
||||
* suitability of this software for any purpose. It is provided "as is"
|
||||
* without express or implied warranty.
|
||||
*
|
||||
* TOSHIBA DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
|
||||
* ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
|
||||
* TOSHIBA BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
|
||||
* ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
|
||||
* ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
|
||||
* SOFTWARE.
|
||||
*
|
||||
* Author: Katsuhisa Yano TOSHIBA Corp.
|
||||
* mopi@osa.ilab.toshiba.co.jp
|
||||
*/
|
||||
|
||||
#include "_fallibint.h"
|
||||
#include "_fallcPubI.h"
|
||||
|
||||
#if NeedVarargsPrototypes
|
||||
char *
|
||||
_falGetLCValues(XLCd lcd, ...)
|
||||
#else
|
||||
char *
|
||||
_falGetLCValues(lcd, va_alist)
|
||||
XLCd lcd;
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
va_list var;
|
||||
XlcArgList args;
|
||||
char *ret;
|
||||
int num_args;
|
||||
XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd);
|
||||
|
||||
Va_start(var, lcd);
|
||||
_fallcCountVaList(var, &num_args);
|
||||
va_end(var);
|
||||
|
||||
Va_start(var, lcd);
|
||||
_fallcVaToArgList(var, num_args, &args);
|
||||
va_end(var);
|
||||
|
||||
if (args == (XlcArgList) NULL)
|
||||
return (char *) NULL;
|
||||
|
||||
ret = (*methods->get_values)(lcd, args, num_args);
|
||||
|
||||
Xfree(args);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void
|
||||
_fallcDestroyLC(lcd)
|
||||
XLCd lcd;
|
||||
{
|
||||
XLCdPublicMethods methods = (XLCdPublicMethods) lcd->methods;
|
||||
|
||||
(*methods->pub.destroy)(lcd);
|
||||
}
|
||||
|
||||
XLCd
|
||||
_fallcCreateLC(name, methods)
|
||||
char *name;
|
||||
XLCdMethods methods;
|
||||
{
|
||||
XLCdPublicMethods pub_methods = (XLCdPublicMethods) methods;
|
||||
XLCd lcd;
|
||||
|
||||
lcd = (*pub_methods->pub.create)(name, methods);
|
||||
if (lcd == NULL)
|
||||
return (XLCd) NULL;
|
||||
|
||||
if (lcd->core->name == NULL) {
|
||||
lcd->core->name = (char*) Xmalloc(strlen(name) + 1);
|
||||
if (lcd->core->name == NULL)
|
||||
goto err;
|
||||
strcpy(lcd->core->name, name);
|
||||
}
|
||||
|
||||
if (lcd->methods == NULL)
|
||||
lcd->methods = methods;
|
||||
|
||||
if ((*pub_methods->pub.initialize)(lcd) == False)
|
||||
goto err;
|
||||
|
||||
return lcd;
|
||||
|
||||
err:
|
||||
_fallcDestroyLC(lcd);
|
||||
|
||||
return (XLCd) NULL;
|
||||
}
|
||||
Reference in New Issue
Block a user