Example #1
0
static Replace *
ReplaceNew (void)
{
    Replace *r = New (sizeof (Replace));
    r->tag = StringNew ();
    r->text = StringNew ();
    return r;
}
Example #2
0
JNIEXPORT jobjectArray JNICALL Java_ConfigManager_getListValue(JNIEnv * env, jobject obj, jstring parameterName)
{
    const jbyte* str;
    char* name;
    char* value;
    int i;
    ParameterList* list;
    jobjectArray result = NULL;
    str = (*env)->GetStringUTFChars(env, parameterName, NULL);
    if (str != NULL)
    {
        name = StringNew((char*) str);
        list = PM_getValue(GetJavaPMPointer(env, obj), name).list_val;
        result = (jobjectArray) (*env)->NewObjectArray(env, PL_getLength(list), (*env)->FindClass(env, "java/lang/String"), NULL);
        i = 0;
        while((value = PL_next(list)) != NULL)
        {
            (*env)->SetObjectArrayElement(env, result, i, (*env)->NewStringUTF(env, value));
            i++;
        }
        (*env)->ReleaseStringUTFChars(env, parameterName, str);
        StringFree(name);
    }
    return result;
}
Example #3
0
static String *
StringMake (char *buf)
{
    String  *s = StringNew ();
    StringAddString (s, buf);
    return s;
}
Example #4
0
static LoopStack *
LoopStackPush (LoopStack *prev, FILE *f, char *tag)
{
    LoopStack	*ls = New (sizeof (LoopStack));
    ls->prev = prev;
    ls->tag = StringMake (tag);
    ls->extra = StringNew ();
    ls->pos = ftell (f);
    return ls;
}
Example #5
0
String* StringConcat (String* first, String* second)
{
	guint i;
	String* res;

	res = StringNew (first->length + second->length);
	gmcopy(res->chars, first->chars, first->length);
	gmcopy(&res->chars[first->length], second->chars, second->length);

	return res;
}
Example #6
0
String* StringFromCstr(char* cstr)
{
	guint i;
	String* res;

	i = _cstrlen(cstr);
	res = StringNew(i);
	gmcopy(res->chars, cstr, res->length);

	return res;
}
Example #7
0
JNIEXPORT jboolean JNICALL Java_ConfigManager_getBooleanValue(JNIEnv * env, jobject obj, jstring parameterName)
{
    const jbyte* str;
    char* name;
    jboolean result = false;
    str = (*env)->GetStringUTFChars(env, parameterName, NULL);
    if (str != NULL)
    {
        name = StringNew((char*) str);
        result = PM_getValue(GetJavaPMPointer(env, obj), name).bool_val;
        (*env)->ReleaseStringUTFChars(env, parameterName, str);
        StringFree(name);
    }
    return result;
}
Example #8
0
JNIEXPORT jstring JNICALL Java_ConfigManager_getStringValue(JNIEnv * env, jobject obj, jstring parameterName)
{
    const jbyte* str;
    char* name;
    char* result = NULL;
    str = (*env)->GetStringUTFChars(env, parameterName, NULL);
    if (str != NULL)
    {
        name = StringNew((char*) str);
        result = PM_getValue(GetJavaPMPointer(env, obj), name).str_val;
        (*env)->ReleaseStringUTFChars(env, parameterName, str);
        StringFree(name);
    }
    return (*env)->NewStringUTF(env, result);
}
Example #9
0
JNIEXPORT void JNICALL Java_ConfigManager_manage(JNIEnv *env, jobject obj, jstring parameterName, jbyte parameterType, jboolean required)
{

    ParameterManager* pm = GetJavaPMPointer(env, obj);
    const jbyte* str;
    char* name;
    char type = (char) parameterType;
    param_t ptype;

    str = (*env)->GetStringUTFChars(env, parameterName, NULL);
    if (str != NULL)
    {
        name = StringNew((char*) str);
        if(type == 'i')
        {
            ptype = INT_TYPE;
        }
        else if(type == 's')
        {
            ptype = STRING_TYPE;
        }
        else if(type == 'l')
        {
            ptype = LIST_TYPE;
        }
        else if(type == 'r')
        {
            ptype = REAL_TYPE;
        }
        else if(type == 'b')
        {
            ptype = BOOLEAN_TYPE;
        }
        PM_manage(pm, name, ptype, required);
        (*env)->ReleaseStringUTFChars(env, parameterName, str);
        StringFree(name);
    }
}
Example #10
0
static void
DoReplace (FILE *f, ReplaceSet *s)
{
    int		c;
    String	*tag;
    Replace	*r;
    SkipStack	*ss = 0;
    LoopStack	*ls = 0;
    int		skipping = 0;

    while ((c = getc (f)) != EOF)
    {
	if (c == '@')
	{
	    tag = StringNew ();
	    while ((c = getc (f)) != '@')
	    {
		if (c == EOF)
		    abort ();
		StringAdd (tag, c);
	    }
	    if (ls)
		StringAddString (tag, ls->extra->buf);
	    switch (tag->buf[0]) {
	    case '?':
		ss = SkipStackPush (ss, skipping);
		if (!ReplaceSetFind (s, tag->buf + 1))
		    skipping++;
		LineSkip (f);
		break;
	    case ':':
		if (!ss)
		    abort ();
		if (ss->skipping == skipping)
		    ++skipping;
		else
		    --skipping;
		LineSkip (f);
		break;
	    case ';':
		skipping = ss->skipping;
		ss = SkipStackPop (ss);
		LineSkip (f);
		break;
	    case '{':
		ls = LoopStackPush (ls, f, tag->buf + 1);
		LineSkip (f);
		break;
	    case '}':
		ls = LoopStackLoop (s, ls, f);
		LineSkip (f);
		break;
	    default:
		r = ReplaceSetFind (s, tag->buf);
		if (r && !skipping)
		    StringPut (stdout, r->text);
		break;
	    }
	    StringDispose (tag);
	}
	else if (!skipping)
	    putchar (c);
    }
}