libpsys

diff src/pattr.c @ 18:66956b1e5e3f

added missing psys_create_attr/psys_free_attr and some checking in load_attr
author John Tsiombikas <nuclear@mutantstargoat.com>
date Thu, 13 Sep 2012 04:10:38 +0300
parents 7fbed016e739
children
line diff
     1.1 --- a/src/pattr.c	Tue Sep 11 03:26:13 2012 +0300
     1.2 +++ b/src/pattr.c	Thu Sep 13 04:10:38 2012 +0300
     1.3 @@ -48,6 +48,24 @@
     1.4  	tex_cls = cls;
     1.5  }
     1.6  
     1.7 +struct psys_attributes *psys_create_attr(void)
     1.8 +{
     1.9 +	struct psys_attributes *attr = malloc(sizeof *attr);
    1.10 +	if(attr) {
    1.11 +		if(psys_init_attr(attr) == -1) {
    1.12 +			free(attr);
    1.13 +			attr = 0;
    1.14 +		}
    1.15 +	}
    1.16 +	return attr;
    1.17 +}
    1.18 +
    1.19 +void psys_free_attr(struct psys_attributes *attr)
    1.20 +{
    1.21 +	psys_destroy_attr(attr);
    1.22 +	free(attr);
    1.23 +}
    1.24 +
    1.25  int psys_init_attr(struct psys_attributes *attr)
    1.26  {
    1.27  	memset(attr, 0, sizeof *attr);
    1.28 @@ -143,6 +161,10 @@
    1.29  	FILE *fp;
    1.30  	int res;
    1.31  
    1.32 +	if(!fname) {
    1.33 +		return -1;
    1.34 +	}
    1.35 +
    1.36  	if(!(fp = fopen(fname, "r"))) {
    1.37  		fprintf(stderr, "%s: failed to read file: %s: %s\n", __func__, fname, strerror(errno));
    1.38  		return -1;