ARSperl
view release on metacpan or search on metacpan
NULL, NULL, NULL, NULL, NULL,
#if AR_EXPORT_VERSION >= 5
NULL,
#endif
&status);
DBG( ("<- ARGetCharMenu\n") );
#ifdef PROFILE
((ars_ctrl *)ctrl)->queries++;
#endif
if (! ARError(ret, status)) {
DBG( ("-> perl_expandARCharMenuStruct\n") );
RETVAL = perl_expandARCharMenuStruct(ctrl,
&menuDefn);
DBG( ("<- perl_expandARCharMenuStruct\n") );
FreeARCharMenuStruct(&menuDefn, FALSE);
DBG( ("after Free\n") );
}
}
OUTPUT:
RETVAL
HV *
ars_GetSchema(ctrl,name)
ARControlStruct * ctrl
{
my $file;
while (@ARGV) {
$file = shift @ARGV;
if ($file eq '-' or -f $file or -l $file) {
return $file;
} elsif (-d $file) {
if ($opt_r) {
expand_glob($file);
} else {
print STDERR "Skipping directory `$file'\n";
}
} elsif ($opt_a) {
return $file;
} else {
print STDERR "Skipping `$file': not a file or directory\n";
}
}
return undef;
}
# Put all the files in $directory into @ARGV for processing.
sub expand_glob
{
my ($directory) = @_;
$directory =~ s:/$::;
opendir DIR, $directory;
foreach (readdir DIR) {
next if ($_ eq '.' or $_ eq '..');
# expand_glob() is going to be called until $ARGV[0] isn't a
# directory; so push directories, and unshift everything else.
if (-d "$directory/$_") { push @ARGV, "$directory/$_" }
else { unshift @ARGV, "$directory/$_" }
}
closedir DIR;
}
# Given $file, a symbolic link to a directory in the C include directory,
# make an equivalent symbolic link in $Dest_dir, if we can figure out how.
sub link_if_possible
{
my ($dirlink) = @_;
my $target = eval 'readlink($dirlink)';
if ($target =~ m:^\.\./: or $target =~ m:^/:) {
# The target of a parent or absolute link could leave the $Dest_dir
# hierarchy, so let's put all of the contents of $dirlink (actually,
# the contents of $target) into @ARGV; as a side effect down the
# line, $dirlink will get created as an _actual_ directory.
expand_glob($dirlink);
} else {
if (-l "$Dest_dir/$dirlink") {
unlink "$Dest_dir/$dirlink" or
print STDERR "Could not remove link $Dest_dir/$dirlink: $!\n";
}
if (eval 'symlink($target, "$Dest_dir/$dirlink")') {
print "Linking $target -> $Dest_dir/$dirlink\n";
# Make sure that the link _links_ to something:
support-h.template view on Meta::CPAN
EXTERN SV *perl_ARSetFieldsActionStruct( ARControlStruct *ctrl, ARSetFieldsActionStruct *p );
EXTERN SV *perl_ARPushFieldsActionStruct( ARControlStruct *ctrl, ARPushFieldsActionStruct *p );
#endif
EXTERN SV *perl_ARFilterActionStruct(ARControlStruct *ctrl, ARFilterActionStruct *);
EXTERN SV *perl_AROwnerObj(ARControlStruct *ctrl, ARContainerOwnerObj *);
#if AR_EXPORT_VERSION >= 6L
EXTERN SV *perl_AROwnerObjList(ARControlStruct *ctrl, ARContainerOwnerObjList *);
#endif
EXTERN SV *perl_ARReferenceStruct(ARControlStruct *ctrl, ARReferenceStruct *);
EXTERN SV *perl_ARReferenceList(ARControlStruct *ctrl, ARReferenceList *);
EXTERN SV *perl_expandARCharMenuStruct( ARControlStruct *, ARCharMenuStruct *);
EXTERN SV *perl_AREntryListFieldStruct(ARControlStruct *ctrl,
AREntryListFieldStruct *);
EXTERN SV *perl_ARIndexStruct(ARControlStruct *ctrl, ARIndexStruct *);
EXTERN SV *perl_ARFieldLimitStruct(ARControlStruct *ctrl, ARFieldLimitStruct *);
EXTERN SV *perl_ARFunctionAssignStruct(ARControlStruct *ctrl,
ARFunctionAssignStruct *);
EXTERN SV *perl_ARArithOpAssignStruct(ARControlStruct *ctrl, ARArithOpAssignStruct *);
EXTERN void dup_Value(ARControlStruct *ctrl, ARValueStruct *, ARValueStruct *);
EXTERN ARArithOpStruct *dup_ArithOp(ARControlStruct *ctrl, ARArithOpStruct *);
EXTERN void dup_ValueList(ARControlStruct *ctrl, ARValueList *, ARValueList *);
hv_store(hash, "none", strlen("none") , &PL_sv_undef, 0);
break;
}
DBG( ("leave\n") );
return newRV_noinc((SV *) hash);
}
SV *
perl_expandARCharMenuStruct(ARControlStruct * ctrl,
ARCharMenuStruct * in)
{
ARCharMenuStruct menu, *which;
int ret;
unsigned int i;
ARStatusList status;
AV *array;
SV *sub;
char *string;
return &PL_sv_undef;
}
which = &menu;
} else {
DBG( ("input menu is a LIST, just using that\n") );
which = in;
}
array = newAV();
DBG( ("expanded menu has %d items\n",
which->u.menuList.numItems) );
for (i = 0; i < which->u.menuList.numItems; i++) {
string = which->u.menuList.charMenuList[i].menuLabel;
av_push(array, newSVpv(string, strlen(string)));
switch (which->u.menuList.charMenuList[i].menuType) {
case AR_MENU_TYPE_VALUE:
string = which->u.menuList.charMenuList[i].u.menuValue;
av_push(array, newSVpv(string, strlen(string)));
break;
case AR_MENU_TYPE_MENU:
sub = perl_expandARCharMenuStruct(ctrl,
which->u.menuList.charMenuList[i].u.childMenu);
if (!sub) {
FreeARCharMenuStruct(&menu, FALSE);
return &PL_sv_undef;
}
av_push(array, sub);
break;
case AR_MENU_TYPE_NONE:
default:
av_push(array, &PL_sv_undef);
( run in 0.543 second using v1.01-cache-2.11-cpan-97f6503c9c8 )