ARSperl
view release on metacpan or search on metacpan
supportrev.c view on Meta::CPAN
rv += uintcpyHVal(a, "messageType", &(m->messageType));
rv += longcpyHVal(a, "messageNum", &(m->messageNum));
#if AR_EXPORT_VERSION >= 4
rv += strmakHVal(a, "appendedText", &(m->appendedText));
#endif
return rv;
} else
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARStatusStruct: hash value is not a hash reference");
} else {
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL,
"rev_ARStatusStruct: hv_fetch returned null");
return -2;
}
} else {
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL,
"rev_ARStatusStruct: key doesn't exist");
return -2;
}
} else
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARStatusStruct: first argument is not a hash");
return -1;
}
#if AR_EXPORT_VERSION >= 4
int
rev_ARMessageStruct(ARControlStruct * ctrl, HV * h, char *k, ARMessageStruct * m)
{
if (!m || !h || !k) {
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARMessageStruct: invalid (NULL) parameter");
return -1;
}
if (SvTYPE((SV *) h) == SVt_PVHV) {
if (hv_exists(h, k, strlen(k) )) {
SV **val = hv_fetch(h, k, strlen(k) , 0);
if (val && *val) {
/* hash value should be a hash reference */
if (SvTYPE(SvRV(*val)) == SVt_PVHV) {
HV *a = (HV *) SvRV((SV *) * val);
int rv = 0;
char *str = NULL;
if(hv_exists(a, "messageType", strlen("messageType") )) {
SV **sval = hv_fetch(a, "messageType", strlen("messageType") , 0);
if(sval && *sval) {
if (SvPOK(*sval))
str = SvPV(*sval, PL_na);
}
} else {
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL,
"rev_ARMessageStruct: messageType key doesn't exist:");
return -1;
}
/* pre1-1.68 messageType was an int, from 1.68 on, it
* is a decoded string, so we need to re-encode from the string
* value. previous code was:
*
* rv += uintcpyHVal(a, "messageType", &(m->messageType));
*
* new code follows (next 10 lines or so)
*/
m->messageType =
revTypeName((TypeMapStruct *)StatusReturnTypeMap,
str);
if(m->messageType == TYPEMAP_LAST) {
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARMessageStruct: messageType key invalid. key follows:");
ARError_add(AR_RETURN_WARNING, AP_ERR_CONTINUE,
str ? str : "[key null]");
return -1;
}
rv += strmakHVal(a, "messageText", &(m->messageText));
rv += longcpyHVal(a, "messageNum", &(m->messageNum));
rv += boolcpyHVal(a, "usePromptingPane", &(m->usePromptingPane));
return rv;
} else
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARMessageStruct: hash value is not a hash reference");
} else {
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL,
"rev_ARMessageStruct: hv_fetch returned null");
return -2;
}
} else {
ARError_add(AR_RETURN_WARNING, AP_ERR_GENERAL,
"rev_ARMessageStruct: key doesn't exist");
return -2;
}
} else
ARError_add(AR_RETURN_ERROR, AP_ERR_GENERAL,
"rev_ARMessageStruct: first argument is not a hash");
return -1;
}
#endif
/* ROUTINE
* rev_ARFieldCharacteristics(hash, key, fieldcharstruct)
*
* DESCRIPTION
* just like all the rest, only different.
*
* RETURNS
* 0 on success
* -1 on failure
* -2 on warning
*/
int
rev_ARFieldCharacteristics(ARControlStruct * ctrl,
HV * h, char *k, ARFieldCharacteristics * m)
( run in 0.527 second using v1.01-cache-2.11-cpan-e1769b4cff6 )