Diff for /libaitio/src/aitio.c between versions 1.9.2.2 and 1.10.6.4

version 1.9.2.2, 2012/05/14 12:48:21 version 1.10.6.4, 2012/05/23 13:53:00
Line 47  SUCH DAMAGE. Line 47  SUCH DAMAGE.
   
   
 int io_Debug;  int io_Debug;
   mpool_t *io_mpool;
   
   
   /* Memory management */
   
   void *(*io_malloc)(size_t) = malloc;
   void *(*io_calloc)(size_t, size_t) = calloc;
   void *(*io_realloc)(void*, size_t) = realloc;
   char *(*io_strdup)(const char*) = strdup;
   void (*io_free)(void*) = free;
   
   
 #pragma GCC visibility push(hidden)  #pragma GCC visibility push(hidden)
   
   int use_mm;
   
 int io_Errno;  int io_Errno;
 char io_Error[STRSIZ];  char io_Error[STRSIZ];
   
Line 84  io_SetErr(int eno, char *estr, ...) Line 96  io_SetErr(int eno, char *estr, ...)
         va_end(lst);          va_end(lst);
 }  }
   
   // io_mm_inuse() Check for memory management model
   inline int
   io_mm_inuse()
   {
           return use_mm & IO_MPOOL;
   }
   
   
   // init libaitio routine
   void
   _init()
   {
   #ifdef USE_MPOOL
           ioLibInit(IO_MPOOL, 0);
   #else
           ioLibInit(IO_SYSM, 0);
   #endif
   }
   
   // fini libaitio routine
   void
   _fini()
   {
           ioLibFini();
   }
   
 /*  /*
    * ioLibInit() - Init libaitio library memory management
    *
    * @mm = memory management (IO_SYSM or IO_MPOOL)
    * @maxmem = memory limit
    * return: -1 error or !=-1 used memory management model
    */
   inline int
   ioLibInit(int mm, u_long maxmem)
   {
           switch (mm) {
                   case IO_MPOOL:  /* mpool */
                           io_mpool = mpool_init(maxmem);
                           if (io_mpool) {
                                   io_malloc = mpool_xmalloc;
                                   io_calloc = mpool_xcalloc;
                                   io_realloc = mpool_xrealloc;
                                   io_strdup = mpool_xstrdup;
                                   io_free = mpool_xfree;
                                   use_mm = mm;
                                   break;
                           } else {
                                   #undef USE_MPOOL
                           }
                   case IO_SYSM:   /* system */
                           io_malloc = malloc;
                           io_calloc = calloc;
                           io_realloc = realloc;
                           io_strdup = strdup;
                           io_free = free;
                           use_mm = mm;
                           break;
                   default:        /* not supported */
                           io_SetErr(EINVAL, "Not supported memory management");
                           return -1;
           }
   
           return use_mm;
   }
   
   /*
    * ioLibFini() - Finish libaitio library memory management
    *
    * return: none
    */
   inline void
   ioLibFini()
   {
           switch (use_mm) {
                   case 1:
                           mpool_destroy(&io_mpool);
   
                           io_malloc = malloc;
                           io_calloc = calloc;
                           io_realloc = realloc;
                           io_strdup = strdup;
                           io_free = free;
                           use_mm = IO_SYSM;
                           break;
           }
   }
   
   
   /*
  * ioPromptRead() - Read data from input h[0] with prompt to output h[1]   * ioPromptRead() - Read data from input h[0] with prompt to output h[1]
  *   *
  * @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout   * @h = file handles h[0] = input, h[1] = output, if NULL use stdin, stdout
Line 312  ioRegexGet(const char *csRegex, const char *csData, ch Line 412  ioRegexGet(const char *csRegex, const char *csData, ch
  * @csRegex = Regulare expression pattern   * @csRegex = Regulare expression pattern
  * @csData = Source data   * @csData = Source data
  * @csNew = Data for replace   * @csNew = Data for replace
 * return: NULL not match or error; !=NULL allocated new string, must be free after use! * return: NULL not match or error; !=NULL allocated new string, must be xfree after use!
 */  */
 char *  char *
 ioRegexReplace(const char *csRegex, const char *csData, const char *csNew)  ioRegexReplace(const char *csRegex, const char *csData, const char *csNew)
Line 328  ioRegexReplace(const char *csRegex, const char *csData Line 428  ioRegexReplace(const char *csRegex, const char *csData
   
         // ___ before match          // ___ before match
         len = sp + 1;          len = sp + 1;
        str = malloc(len);        str = xmalloc(len);
         if (!str) {          if (!str) {
                 LOGERR;                  LOGERR;
                 return NULL;                  return NULL;
Line 337  ioRegexReplace(const char *csRegex, const char *csData Line 437  ioRegexReplace(const char *csRegex, const char *csData
         // * replace match *          // * replace match *
         if (csNew) {          if (csNew) {
                 len += strlen(csNew);                  len += strlen(csNew);
                str = realloc(str, len);                str = xrealloc(str, len);
                 if (!str) {                  if (!str) {
                         LOGERR;                          LOGERR;
                         return NULL;                          return NULL;
Line 346  ioRegexReplace(const char *csRegex, const char *csData Line 446  ioRegexReplace(const char *csRegex, const char *csData
         }          }
         // after match ___          // after match ___
         len += strlen(csData) - ep;          len += strlen(csData) - ep;
        str = realloc(str, len);        str = xrealloc(str, len);
         if (!str) {          if (!str) {
                 LOGERR;                  LOGERR;
                 return NULL;                  return NULL;
Line 360  ioRegexReplace(const char *csRegex, const char *csData Line 460  ioRegexReplace(const char *csRegex, const char *csData
  * ioStrAst() - Function for evaluate string like asterisk variable "{text[:[-]#[:#]]}"   * ioStrAst() - Function for evaluate string like asterisk variable "{text[:[-]#[:#]]}"
  *   *
  * @csString = Input string   * @csString = Input string
 * return: NULL error, !=NULL Allocated new string evaluated from input string, must be free() * return: NULL error, !=NULL Allocated new string evaluated from input string, must be xfree()
 */  */
 char *  char *
 ioStrAst(const char *csString)  ioStrAst(const char *csString)
Line 401  ioStrAst(const char *csString) Line 501  ioStrAst(const char *csString)
                 ext = str;                  ext = str;
   
         out = strdup(ext);          out = strdup(ext);
        free(str);        xfree(str);
   
         return out;          return out;
 }  }
Line 451  ioMkDir(const char *csDir, int mode) Line 551  ioMkDir(const char *csDir, int mode)
         }          }
 end:  end:
         chdir(szOld);          chdir(szOld);
        free(str);        xfree(str);
         return cx;          return cx;
 }  }
   

Removed from v.1.9.2.2  
changed lines
  Added in v.1.10.6.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>