Changeset a46da63 in mainline for libc/generic/string.c


Ignore:
Timestamp:
2006-06-16T20:50:51Z (19 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
153a209
Parents:
b34fab6
Message:

big code cleanup, compile with -Wall -Werror to enforce better coding
there is currently one warning that requires attention, please review

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libc/generic/string.c

    rb34fab6 ra46da63  
    2727 */
    2828
    29  /** @addtogroup libc
     29/** @addtogroup libc
    3030 * @{
    3131 */
     
    4242/* Dummy implementation of mem/ functions */
    4343
    44 void * memset(void *s, int c, size_t n)
     44void *memset(void *s, int c, size_t n)
    4545{
    4646        char *os = s;
     47       
    4748        while (n--)
    4849                *(os++) = c;
     50       
    4951        return s;
    5052}
    5153
    52 struct along {unsigned long n; } __attribute__ ((packed));
    53 
    54 static void * unaligned_memcpy(void *dst, const void *src, size_t n)
     54struct along {
     55        unsigned long n;
     56} __attribute__ ((packed));
     57
     58static void *unaligned_memcpy(void *dst, const void *src, size_t n)
    5559{
    5660        int i, j;
     
    5862        const struct along *asrc = src;
    5963
    60         for (i = 0; i < n/sizeof(unsigned long); i++)
     64        for (i = 0; i < n / sizeof(unsigned long); i++)
    6165                adst[i].n = asrc[i].n;
    6266               
    63         for (j = 0; j < n%sizeof(unsigned long); j++)
    64                 ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
    65                
    66         return (char *)src;
    67 }
    68 
    69 void * memcpy(void *dst, const void *src, size_t n)
     67        for (j = 0; j < n % sizeof(unsigned long); j++)
     68                ((unsigned char *) (((unsigned long *) dst) + i))[j] = ((unsigned char *) (((unsigned long *) src) + i))[j];
     69               
     70        return (char *) src;
     71}
     72
     73void *memcpy(void *dst, const void *src, size_t n)
    7074{
    7175        int i, j;
    7276
    73         if (((long)dst & (sizeof(long)-1)) || ((long)src & (sizeof(long)-1)))
     77        if (((long) dst & (sizeof(long) - 1)) || ((long) src & (sizeof(long) - 1)))
    7478                return unaligned_memcpy(dst, src, n);
    7579
    76         for (i = 0; i < n/sizeof(unsigned long); i++)
     80        for (i = 0; i < n / sizeof(unsigned long); i++)
    7781                ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
    7882               
    79         for (j = 0; j < n%sizeof(unsigned long); j++)
    80                 ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
    81                
    82         return (char *)src;
    83 }
    84 
    85 void * memmove(void *dst, const void *src, size_t n)
     83        for (j = 0; j < n % sizeof(unsigned long); j++)
     84                ((unsigned char *) (((unsigned long *) dst) + i))[j] = ((unsigned char *) (((unsigned long *) src) + i))[j];
     85               
     86        return (char *) src;
     87}
     88
     89void *memmove(void *dst, const void *src, size_t n)
    8690{
    8791        int i, j;
     
    9094                return memcpy(dst, src, n);
    9195
    92         for (j = (n%sizeof(unsigned long))-1; j >= 0; j--)
    93                 ((unsigned char *)(((unsigned long *) dst) + i))[j] = ((unsigned char *)(((unsigned long *) src) + i))[j];
    94 
    95         for (i = n/sizeof(unsigned long)-1; i >=0 ; i--)
     96        for (j = (n % sizeof(unsigned long)) - 1; j >= 0; j--)
     97                ((unsigned char *) ((unsigned long *) dst))[j] = ((unsigned char *) ((unsigned long *) src))[j];
     98
     99        for (i = n / sizeof(unsigned long) - 1; i >=0 ; i--)
    96100                ((unsigned long *) dst)[i] = ((unsigned long *) src)[i];
    97101               
    98         return (char *)src;
     102        return (char *) src;
    99103}
    100104
     
    108112        size_t counter = 0;
    109113
    110         while (str[counter] != 0) {
     114        while (str[counter] != 0)
    111115                counter++;
    112         }
    113116
    114117        return counter;
    115118}
    116119
    117 int strcmp(const char *a,const char *b)
    118 {
    119         int c=0;
    120        
    121         while(a[c]&&b[c]&&(!(a[c]-b[c]))) c++;
    122        
    123         return a[c]-b[c];
    124        
    125 }
    126 
     120int strcmp(const char *a, const char *b)
     121{
     122        int c = 0;
     123       
     124        while (a[c] && b[c] && (!(a[c] - b[c])))
     125                c++;
     126       
     127        return (a[c] - b[c]);
     128       
     129}
    127130
    128131
     
    135138{
    136139        while (*str != '\0') {
    137                 if (*str == (char)c)
    138                         return (char *)str;
     140                if (*str == (char) c)
     141                        return (char *) str;
    139142                str++;
    140143        }
     
    153156
    154157        while (*str != '\0') {
    155                 if (*str == (char)c)
    156                         retval = (char *)str;
     158                if (*str == (char) c)
     159                        retval = (char *) str;
    157160                str++;
    158161        }
    159162
    160         return (char *)retval;
     163        return (char *) retval;
    161164}
    162165
     
    210213        while (*str) {
    211214                c = *str;
    212                 c = ( c >= 'a'? c-'a'+10:(c >= 'A'?c-'A'+10:(c <= '9'?c-'0':0xff)));
     215                c = (c >= 'a' ? c - 'a' + 10 : (c >= 'A' ? c - 'A' + 10 : (c <= '9' ? c - '0' : 0xff)));
    213216                if (c > base) {
    214217                        break;
     
    236239       
    237240        if (endptr)
    238                 *endptr = (char *)str;
     241                *endptr = (char *) str;
    239242
    240243        if (nptr == str) {
     
    264267
    265268        if (number > LONG_MAX) {
    266                 if ((sgn) && (number == (unsigned long)(LONG_MAX) + 1)) {
     269                if ((sgn) && (number == (unsigned long) (LONG_MAX) + 1)) {
    267270                        /* FIXME: set 0 to errno */
    268271                        return number;         
    269272                }
    270273                /* FIXME: set ERANGE to errno */
    271                 return (sgn?LONG_MIN:LONG_MAX);
    272         }
    273        
    274         return (sgn?-number:number);
     274                return (sgn ? LONG_MIN : LONG_MAX);     
     275        }
     276       
     277        return (sgn ? -number : number);
    275278}
    276279
     
    293296        number = _strtoul(nptr, endptr, base, &sgn);
    294297
    295         return (sgn?-number:number);
     298        return (sgn ? -number : number);
    296299}
    297300
    298301char *strcpy(char *dest, const char *src)
    299302{
    300         while (*(dest++) = *(src++))
    301                 ;
     303        char *orig = dest;
     304       
     305        while ((*(dest++) = *(src++)));
     306        return orig;
    302307}
    303308
    304309char *strncpy(char *dest, const char *src, size_t n)
    305310{
    306         while ((*(dest++) = *(src++)) && --n)
    307                 ;
    308 }
    309 
    310 
    311  /** @}
    312  */
    313  
    314  
     311        char *orig = dest;
     312       
     313        while ((*(dest++) = *(src++)) && --n);
     314        return orig;
     315}
     316
     317
     318/** @}
     319 */
Note: See TracChangeset for help on using the changeset viewer.