Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/oscar_util.c

    r5d6c178 r6042a54  
    11#include <aim.h>
    22#include <ctype.h>
    3 
    4 int 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  */
    15 int 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 
    39 int 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 
    56 char *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 }
    933
    944/*
Note: See TracChangeset for help on using the changeset viewer.