Changeset 5752:ec433a3a02b8 in roaraudio


Ignore:
Timestamp:
11/16/12 13:45:29 (11 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

Improved env API

Files:
3 edited

Legend:

Unmodified
Added
Removed
  • ChangeLog

    r5747 r5752  
    99        * Allow RAT builds on systems with full linkage. 
    1010        * Provide a more common interface for path config. 
     11        * Improved env API. 
    1112 
    1213v. 1.0beta7 - Tue Oct 23 2012 23:28 CEST 
  • include/libroar/env.h

    r5381 r5752  
    4040 
    4141int roar_env_set(struct roar_keyval * keyval); 
     42const char * roar_env_get(const char * key); 
    4243const char * roar_env_get_home(int level); 
    43 int roar_env_get_home_r(int level, char * str, size_t len); 
     44int roar_env_get_home_r(int level, char * str, size_t len) _LIBROAR_ATTR_DEPRECATED; 
    4445 
    4546int roar_env_render_path_r(char * out, size_t len, const char * inpath); 
  • libroar/env.c

    r5381 r5752  
    3737 
    3838int roar_env_set(struct roar_keyval * keyval) { 
     39#if defined(ROAR_HAVE_PUTENV) && !defined(ROAR_HAVE_SETENV) 
     40 size_t len; 
     41 char * str; 
     42#endif 
     43 
     44 if ( keyval == NULL || keyval->key == NULL ) { 
     45  roar_err_set(ROAR_ERROR_FAULT); 
     46  return -1; 
     47 } 
     48 
    3949#ifdef ROAR_HAVE_SETENV 
    4050 return setenv(keyval->key, keyval->value, 1); 
    4151#elif defined(ROAR_HAVE_PUTENV) 
    42  size_t len; 
    43  char * str; 
    44  
    4552 len = strlen(keyval->key) + strlen(keyval->value) + 2; 
    4653 
     
    5461 return putenv(str) == 0 ? 0 : -1; 
    5562#else 
     63 roar_strap(ROAR_TRAP_GROUP_LIBROAR, "env_set.not-implemented"); 
     64 roar_err_set(ROAR_ERROR_NOSYS); 
    5665 return -1; 
    5766#endif 
     67} 
     68 
     69const char * roar_env_get(const char * key) { 
     70 const char * ret; 
     71 
     72 if ( key == NULL ) { 
     73  roar_err_set(ROAR_ERROR_FAULT); 
     74  return NULL; 
     75 } 
     76 
     77 roar_err_clear_all(); 
     78 ret = getenv(key); 
     79 roar_err_update(); 
     80 
     81 if ( ret == NULL && roar_error == ROAR_ERROR_NONE ) 
     82  roar_err_set(ROAR_ERROR_NOENT); 
     83 
     84 return ret; 
    5885} 
    5986 
Note: See TracChangeset for help on using the changeset viewer.