forked from bartvdbraak/blender
replace BLF's blf_utf8_next() with BLI_str_utf8_as_unicode_step(),
also fixed some spelling errors.
This commit is contained in:
parent
2d8189cec0
commit
6912e94d06
@ -129,7 +129,7 @@ static void blf_font_ensure_ascii_table(FontBLF *font)
|
||||
g= (glyph_ascii_table)[c]; \
|
||||
i++; \
|
||||
} \
|
||||
else if ((c= blf_utf8_next((str), &(i))) != BLI_UTF8_ERR) { \
|
||||
else if ((c= BLI_str_utf8_as_unicode_step((str), &(i))) != BLI_UTF8_ERR) { \
|
||||
if ((g= blf_glyph_search((font)->glyph_cache, c)) == NULL) { \
|
||||
g= blf_glyph_add(font, FT_Get_Char_Index((font)->face, c), c); \
|
||||
} \
|
||||
|
@ -40,7 +40,6 @@ struct rctf;
|
||||
|
||||
unsigned int blf_next_p2(unsigned int x);
|
||||
unsigned int blf_hash(unsigned int val);
|
||||
unsigned int blf_utf8_next(const char *buf, size_t *iindex);
|
||||
|
||||
char *blf_dir_search(const char *file);
|
||||
char *blf_dir_metrics_search(const char *filename);
|
||||
|
@ -64,67 +64,3 @@ unsigned int blf_hash(unsigned int val)
|
||||
key ^= (key >> 17);
|
||||
return key % 257;
|
||||
}
|
||||
|
||||
/*
|
||||
* This function is from Imlib2 library (font_main.c), a
|
||||
* library that does image file loading and saving as well
|
||||
* as rendering, manipulation, arbitrary polygon support, etc.
|
||||
*
|
||||
* Copyright (C) 2000 Carsten Haitzler and various contributors
|
||||
* The original name: imlib_font_utf8_get_next
|
||||
* more info here: http://docs.enlightenment.org/api/imlib2/html/
|
||||
*/
|
||||
unsigned int blf_utf8_next(const char *buf, size_t *iindex)
|
||||
{
|
||||
/* Reads UTF8 bytes from 'buf', starting at 'index' and
|
||||
* returns the code point of the next valid code point.
|
||||
* 'index' is updated ready for the next call.
|
||||
*
|
||||
* Returns 0 to indicate an error (e.g. invalid UTF8)
|
||||
*/
|
||||
int index= *iindex, len, r;
|
||||
unsigned char d, d2, d3, d4;
|
||||
|
||||
d= buf[index++];
|
||||
if (!d)
|
||||
return BLI_UTF8_ERR;
|
||||
|
||||
while (buf[index] && ((buf[index] & 0xc0) == 0x80))
|
||||
index++;
|
||||
|
||||
len= index - *iindex;
|
||||
if (len == 1)
|
||||
r= d;
|
||||
else if (len == 2) {
|
||||
/* 2 byte */
|
||||
d2= buf[*iindex + 1];
|
||||
r= d & 0x1f; /* copy lower 5 */
|
||||
r <<= 6;
|
||||
r |= (d2 & 0x3f); /* copy lower 6 */
|
||||
}
|
||||
else if (len == 3) {
|
||||
/* 3 byte */
|
||||
d2= buf[*iindex + 1];
|
||||
d3= buf[*iindex + 2];
|
||||
r= d & 0x0f; /* copy lower 4 */
|
||||
r <<= 6;
|
||||
r |= (d2 & 0x3f);
|
||||
r <<= 6;
|
||||
r |= (d3 & 0x3f);
|
||||
}
|
||||
else {
|
||||
/* 4 byte */
|
||||
d2= buf[*iindex + 1];
|
||||
d3= buf[*iindex + 2];
|
||||
d4= buf[*iindex + 3];
|
||||
r= d & 0x0f; /* copy lower 4 */
|
||||
r <<= 6;
|
||||
r |= (d2 & 0x3f);
|
||||
r <<= 6;
|
||||
r |= (d3 & 0x3f);
|
||||
r <<= 6;
|
||||
r |= (d4 & 0x3f);
|
||||
}
|
||||
*iindex= index;
|
||||
return r;
|
||||
}
|
||||
|
@ -208,7 +208,7 @@ static float sb_time_scale(Object *ob)
|
||||
}
|
||||
return (1.0f);
|
||||
/*
|
||||
this would be frames/sec independant timing assuming 25 fps is default
|
||||
this would be frames/sec independent timing assuming 25 fps is default
|
||||
but does not work very well with NLA
|
||||
return (25.0f/scene->r.frs_sec)
|
||||
*/
|
||||
|
@ -1,7 +1,5 @@
|
||||
/*
|
||||
* @file PIL_time.h
|
||||
*
|
||||
* Platform independant time functions.
|
||||
/*
|
||||
* Platform independent time functions.
|
||||
* $Id$
|
||||
*
|
||||
* ***** BEGIN GPL LICENSE BLOCK *****
|
||||
@ -51,7 +49,7 @@ extern
|
||||
double PIL_check_seconds_timer (void);
|
||||
|
||||
/**
|
||||
* Platform-independant sleep function.
|
||||
* Platform-independent sleep function.
|
||||
* @param ms Number of milliseconds to sleep
|
||||
*/
|
||||
void PIL_sleep_ms (int ms);
|
||||
|
@ -297,12 +297,12 @@ size_t BLI_strncpy_wchar_from_utf8(wchar_t *dst_w, const char *src_c, const size
|
||||
Len = -1; \
|
||||
}
|
||||
|
||||
|
||||
#define UTF8_GET(Result, Chars, Count, Mask, Len) \
|
||||
/* same as glib define but added an 'Err' arg */
|
||||
#define UTF8_GET(Result, Chars, Count, Mask, Len, Err) \
|
||||
(Result) = (Chars)[0] & (Mask); \
|
||||
for ((Count) = 1; (Count) < (Len); ++(Count)) { \
|
||||
if (((Chars)[(Count)] & 0xc0) != 0x80) { \
|
||||
(Result) = -1; \
|
||||
(Result) = Err; \
|
||||
break; \
|
||||
} \
|
||||
(Result) <<= 6; \
|
||||
@ -332,7 +332,7 @@ unsigned int BLI_str_utf8_as_unicode(const char *p)
|
||||
UTF8_COMPUTE (c, mask, len);
|
||||
if (len == -1)
|
||||
return BLI_UTF8_ERR;
|
||||
UTF8_GET (result, p, i, mask, len);
|
||||
UTF8_GET (result, p, i, mask, len, BLI_UTF8_ERR);
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -347,12 +347,13 @@ unsigned int BLI_str_utf8_as_unicode_and_size(const char *p, size_t *index)
|
||||
UTF8_COMPUTE (c, mask, len);
|
||||
if (len == -1)
|
||||
return BLI_UTF8_ERR;
|
||||
UTF8_GET (result, p, i, mask, len);
|
||||
UTF8_GET (result, p, i, mask, len, BLI_UTF8_ERR);
|
||||
*index += len;
|
||||
return result;
|
||||
}
|
||||
|
||||
/* another varient that steps over the index */
|
||||
/* another varient that steps over the index,
|
||||
* note, currently this also falls back to latin1 for text drawing. */
|
||||
unsigned int BLI_str_utf8_as_unicode_step(const char *p, size_t *index)
|
||||
{
|
||||
int i, mask = 0, len;
|
||||
@ -372,7 +373,26 @@ unsigned int BLI_str_utf8_as_unicode_step(const char *p, size_t *index)
|
||||
*index += (size_t)(p_next - p);
|
||||
return BLI_UTF8_ERR;
|
||||
}
|
||||
UTF8_GET (result, p, i, mask, len);
|
||||
|
||||
/* this is tricky since there are a few ways we can bail out of bad unicode
|
||||
* values, 3 possible solutions. */
|
||||
#if 0
|
||||
UTF8_GET (result, p, i, mask, len, BLI_UTF8_ERR);
|
||||
#elif 1
|
||||
/* WARNING: this is NOT part of glib, or supported by similar functions.
|
||||
* this is added for text drawing because some filepaths can have latin1
|
||||
* characters */
|
||||
UTF8_GET (result, p, i, mask, len, BLI_UTF8_ERR);
|
||||
if(result == BLI_UTF8_ERR) {
|
||||
len= 1;
|
||||
result= *p;
|
||||
}
|
||||
/* end warning! */
|
||||
#else
|
||||
/* without a fallback like '?', text drawing will stop on this value */
|
||||
UTF8_GET (result, p, i, mask, len, '?');
|
||||
#endif
|
||||
|
||||
*index += len;
|
||||
return result;
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ typedef struct TransData2D {
|
||||
float loc[3]; /* Location of data used to transform (x,y,0) */
|
||||
float *loc2d; /* Pointer to real 2d location of data */
|
||||
|
||||
float *h1, *h2; /* Pointer to handle locations, if handles aren't being moved independantly*/
|
||||
float *h1, *h2; /* Pointer to handle locations, if handles aren't being moved independently */
|
||||
float ih1[2], ih2[2];
|
||||
} TransData2D;
|
||||
|
||||
|
@ -69,7 +69,7 @@ class SCA_KeyboardSensor : public SCA_ISensor
|
||||
* The property that indicates whether or not to log text when in
|
||||
* loggin mode. If the property equals 0, no loggin is done. For
|
||||
* all other values, logging is active. Logging can only become
|
||||
* active if there is a property to log to. Logging is independant
|
||||
* active if there is a property to log to. Logging is independent
|
||||
* from hotkey settings. */
|
||||
STR_String m_toggleprop;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user