/*
* 2ooM: The Master of Orion II Reverse Engineering Project
* Library for working with LBX archive files.
- * Copyright (C) 2006-2010 Nick Bowler
+ * Copyright © 2006-2010, 2013-2014 Nick Bowler
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
FILE *f;
f = fopen(file, "rb");
- if (!f)
+ if (!f) {
+ lbx_error_raise(-errno);
return NULL;
+ }
if (fseek(f, 0, SEEK_CUR) == 0)
return lbx_open(f, &lbx_default_fops, file_close, name);
p = malloc(sizeof *p);
if (!p) {
+ lbx_error_raise(LBX_ENOMEM);
fclose(f);
return NULL;
}
return lbx_open(p, &lbx_pipe_fops, pipe_close, name);
}
-size_t lbx_numfiles(struct lbx *pub)
-{
- return pub->nfiles;
-}
-
-int
-lbx_file_stat(struct lbx *pub, unsigned fileno, struct lbx_statbuf *buf)
+int lbx_file_stat(struct lbx *pub, unsigned fileno, struct lbx_statbuf *buf)
{
struct lbx_priv *lbx = (struct lbx_priv *)pub;
static char str[256]; /* FIXME */
if (fileno >= lbx->pub.nfiles) {
- lbx_error_raise(LBX_ENOENT);
+ lbx_error_raise(LBX_EINVAL);
buf->name = NULL;
return -1;
}
struct lbx_file_state *state;
if (fileno >= lbx->pub.nfiles) {
- lbx_error_raise(LBX_ENOENT);
+ lbx_error_raise(LBX_EINVAL);
return NULL;
}