Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2011-10-21 05:33:06 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-10-21 05:33:06 +0400
commit6912e94d06edd4c9d099fc3d248aa56ccc7460be (patch)
treecf5eeb6b4cee925fc42209cc8577ab26953df76d /source/blender
parent2d8189cec0dab3d4c9db95c03ebb4eb2de6738c4 (diff)
replace BLF's blf_utf8_next() with BLI_str_utf8_as_unicode_step(),
also fixed some spelling errors.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenfont/intern/blf_font.c2
-rw-r--r--source/blender/blenfont/intern/blf_internal.h1
-rw-r--r--source/blender/blenfont/intern/blf_util.c64
-rw-r--r--source/blender/blenkernel/intern/softbody.c2
-rw-r--r--source/blender/blenlib/PIL_time.h8
-rw-r--r--source/blender/blenlib/intern/string_utf8.c34
-rw-r--r--source/blender/editors/transform/transform.h2
7 files changed, 33 insertions, 80 deletions
diff --git a/source/blender/blenfont/intern/blf_font.c b/source/blender/blenfont/intern/blf_font.c
index 9a7fb95dd78..355182fb85f 100644
--- a/source/blender/blenfont/intern/blf_font.c
+++ b/source/blender/blenfont/intern/blf_font.c
@@ -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); \
} \
diff --git a/source/blender/blenfont/intern/blf_internal.h b/source/blender/blenfont/intern/blf_internal.h
index 4c830910e36..df88d0c8fea 100644
--- a/source/blender/blenfont/intern/blf_internal.h
+++ b/source/blender/blenfont/intern/blf_internal.h
@@ -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);
diff --git a/source/blender/blenfont/intern/blf_util.c b/source/blender/blenfont/intern/blf_util.c
index aef97b6f1cc..d51f9b8af6b 100644
--- a/source/blender/blenfont/intern/blf_util.c
+++ b/source/blender/blenfont/intern/blf_util.c
@@ -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;
-}
diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c
index 8787ec07d9c..cd147f4dbed 100644
--- a/source/blender/blenkernel/intern/softbody.c
+++ b/source/blender/blenkernel/intern/softbody.c
@@ -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)
*/
diff --git a/source/blender/blenlib/PIL_time.h b/source/blender/blenlib/PIL_time.h
index 82869035d50..36ea43bef2d 100644
--- a/source/blender/blenlib/PIL_time.h
+++ b/source/blender/blenlib/PIL_time.h
@@ -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);
diff --git a/source/blender/blenlib/intern/string_utf8.c b/source/blender/blenlib/intern/string_utf8.c
index 25a0e67fd38..8dc683f6e22 100644
--- a/source/blender/blenlib/intern/string_utf8.c
+++ b/source/blender/blenlib/intern/string_utf8.c
@@ -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;
}
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 2f177239f44..7fccbcb0097 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -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;