Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/oscar_util.c

    r6042a54 r5d6c178  
    11#include <aim.h>
    22#include <ctype.h>
     3
     4int aimutil_putstr(u_char *dest, const char *src, int len)
     5{
     6        memcpy(dest, src, len);
     7        return len;
     8}
     9
     10/*
     11 * Tokenizing functions.  Used to portably replace strtok/sep.
     12 *   -- DMP.
     13 *
     14 */
     15int aimutil_tokslen(char *toSearch, int index, char dl)
     16{
     17        int curCount = 1;
     18        char *next;
     19        char *last;
     20        int toReturn;
     21
     22        last = toSearch;
     23        next = strchr(toSearch, dl);
     24
     25        while(curCount < index && next != NULL) {
     26                curCount++;
     27                last = next + 1;
     28                next = strchr(last, dl);
     29        }
     30
     31        if ((curCount < index) || (next == NULL))
     32                toReturn = strlen(toSearch) - (curCount - 1);
     33        else
     34                toReturn = next - toSearch - (curCount - 1);
     35
     36        return toReturn;
     37}
     38
     39int aimutil_itemcnt(char *toSearch, char dl)
     40{
     41        int curCount;
     42        char *next;
     43
     44        curCount = 1;
     45
     46        next = strchr(toSearch, dl);
     47
     48        while(next != NULL) {
     49                curCount++;
     50                next = strchr(next + 1, dl);
     51        }
     52
     53        return curCount;
     54}
     55
     56char *aimutil_itemidx(char *toSearch, int index, char dl)
     57{
     58        int curCount;
     59        char *next;
     60        char *last;
     61        char *toReturn;
     62
     63        curCount = 0;
     64
     65        last = toSearch;
     66        next = strchr(toSearch, dl);
     67
     68        while (curCount < index && next != NULL) {
     69                curCount++;
     70                last = next + 1;
     71                next = strchr(last, dl);
     72        }
     73
     74        if (curCount < index) {
     75                toReturn = g_strdup("");
     76        }
     77        next = strchr(last, dl);
     78
     79        if (curCount < index) {
     80                toReturn = g_strdup("");
     81        } else {
     82                if (next == NULL) {
     83                        toReturn = g_malloc((strlen(last) + 1) * sizeof(char));
     84                        strcpy(toReturn, last);
     85                } else {
     86                        toReturn = g_malloc((next - last + 1) * sizeof(char));
     87                        memcpy(toReturn, last, (next - last));
     88                        toReturn[next - last] = '\0';
     89                }
     90        }
     91        return toReturn;
     92}
    393
    494/*
Note: See TracChangeset for help on using the changeset viewer.