Skip to content
err.c 28 KiB
Newer Older
	err_clear_data(es,i);
	es->err_data[i]=data;
	es->err_data_flags[i]=flags;
Ulf Möller's avatar
Ulf Möller committed
void ERR_add_error_data(int num, ...)
Ulf Möller's avatar
Ulf Möller committed
	va_list args;
	s=80;
	if (str == NULL) return;
	str[0]='\0';

Ulf Möller's avatar
Ulf Möller committed
	va_start(args, num);
Ulf Möller's avatar
Ulf Möller committed
		a=va_arg(args, char*);
		/* ignore NULLs, thanks to Bob Beck <beck@obtuse.com> */
		if (a != NULL)
			}
		}
	ERR_set_error_data(str,ERR_TXT_MALLOCED|ERR_TXT_STRING);

Ulf Möller's avatar
Ulf Möller committed
	va_end(args);

int ERR_set_mark(void)
	{
	ERR_STATE *es;

	es=ERR_get_state();

	if (es->bottom == es->top) return 0;
	es->err_flags[es->top]|=ERR_FLAG_MARK;
	return 1;
	}

int ERR_pop_to_mark(void)
	{
	ERR_STATE *es;

	es=ERR_get_state();

	while(es->bottom != es->top
		&& (es->err_flags[es->top] & ERR_FLAG_MARK) == 0)
		{
		err_clear(es,es->top);
		es->top-=1;
		if (es->top == -1) es->top=ERR_NUM_ERRORS;
		}
		
	if (es->bottom == es->top) return 0;
	es->err_flags[es->top]&=~ERR_FLAG_MARK;
	return 1;
	}