* PERFORMANCE OF THIS SOFTWARE.
*/
+#include "fcint.h"
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
-#include "fcint.h"
FcChar8 *
FcStrCopy (const FcChar8 *s)
{
- FcChar8 *r;
+ int len;
+ FcChar8 *r;
if (!s)
return 0;
- r = (FcChar8 *) malloc (strlen ((char *) s) + 1);
+ len = strlen ((char *) s) + 1;
+ r = (FcChar8 *) malloc (len);
if (!r)
return 0;
- FcMemAlloc (FC_MEM_STRING, strlen ((char *) s) + 1);
- strcpy ((char *) r, (char *) s);
+ FcMemAlloc (FC_MEM_STRING, len);
+ memcpy (r, s, len);
return r;
}
typedef struct _FcCaseWalker {
const FcChar8 *read;
const FcChar8 *src;
- int len;
FcChar8 utf8[FC_MAX_CASE_FOLD_CHARS + 1];
} FcCaseWalker;
{
w->src = src;
w->read = 0;
- w->len = strlen (src);
}
static FcChar8
{
FcChar32 ucs4;
int slen;
+ int len = strlen((char*)w->src);
- slen = FcUtf8ToUcs4 (w->src - 1, &ucs4, w->len + 1);
+ slen = FcUtf8ToUcs4 (w->src - 1, &ucs4, len + 1);
if (slen <= 0)
return r;
if (FC_MIN_FOLD_CHAR <= ucs4 && ucs4 <= FC_MAX_FOLD_CHAR)
/* consume rest of src utf-8 bytes */
w->src += slen - 1;
- w->len -= slen - 1;
/* read from temp buffer */
w->utf8[dlen] = '\0';
w->read = 0;
}
r = *w->src++;
- --w->len;
if ((r & 0xc0) == 0xc0)
return FcStrCaseWalkerLong (w, r);
do
{
r = *w->src++;
- --w->len;
} while (r == ' ');
if ((r & 0xc0) == 0xc0)
++ s1;
++ s2;
}
-
- return 0;
+ /* never reached. */
}
int
}
else
{
- size = buf->size + 1024;
+ size = buf->size + 64;
new = malloc (size);
if (new)
{
if (!new)
return 0;
FcMemAlloc (FC_MEM_STRING, size);
- strcpy ((char *) new, (const char *) s);
+ memcpy (new, s, size);
}
return new;
}