Пример #1
0
Файл: err.c Проект: gdhh/ffs
int main (int argc, char * argv[]) {
	ERRNO(EINVAL);
	FOO_UNEXPECTED("cannot frob the ka-knob");

	goto error;

	if (false) {
		err_t * err = NULL;
error:
		while ((err = err_get()) != NULL) {
			switch (err_type(err)) {
			case ERR_VERSION:
				fprintf(stderr, "%s: %s : %s(%d) : v%d.%02d.%04d %.*s\n",
					basename((char *)argv[0]),
					err_type_name(err), basename(err_file(err)), err_line(err),
					VER_TO_MAJOR(err_code(err)), VER_TO_MINOR(err_code(err)),
					VER_TO_PATCH(err_code(err)),
					err_size(err), (char *)err_data(err));
				break;
			default:
				fprintf(stderr, "%s: %s : %s(%d) : (code=%d) %.*s\n",
					basename((char *)argv[0]),
					err_type_name(err), basename(err_file(err)), err_line(err),
					err_code(err), err_size(err), (char *)err_data(err));
			}
		}
	}

	return 0;
}
Пример #2
0
Файл: misc.c Проект: whs1787/ffs
int dump_errors(const char * name, FILE * out)
{
	assert(name != NULL);

	if (out == NULL)
		out = stderr;

	err_t * err = NULL;

	while ((err = err_get()) != NULL) {
		switch (err_type(err)) {
		case ERR_VERSION:
			fprintf(out, "%s: %s : %s(%d) : v%d.%02d.%04d %.*s\n",
				basename((char *)name), err_type_name(err),
				basename(err_file(err)), err_line(err),
				VER_TO_MAJOR(err_code(err)),
				VER_TO_MINOR(err_code(err)),
				VER_TO_PATCH(err_code(err)),
				err_size(err), (char *)err_data(err));
			break;
		default:
			fprintf(out, "%s: %s : %s(%d) : (code=%d) %.*s\n",
				basename((char *)name), err_type_name(err),
				basename(err_file(err)), err_line(err),
				err_code(err), err_size(err),
				(char *)err_data(err));
		}
	}

	return 0;
}