diff --git a/.gitignore b/.gitignore index 92dacf9..85b813b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ alfont-2.0.6.tar.gz -/alfont-2.0.9.tar.gz diff --git a/alfont-2.0.6-linux.patch b/alfont-2.0.6-linux.patch new file mode 100644 index 0000000..93ba999 --- /dev/null +++ b/alfont-2.0.6-linux.patch @@ -0,0 +1,79 @@ +--- alfont-2.0.6/include/alfont.h~ 2006-11-30 13:48:16.000000000 +0100 ++++ alfont-2.0.6/include/alfont.h 2006-11-30 13:48:16.000000000 +0100 +@@ -10,9 +10,9 @@ + /* See FTL.txt (FreeType Project License) for license */ + + +-#define ALFONT_WINDOWS //When compiling in WINDOWS,please uncomment this line. ++//#define ALFONT_WINDOWS //When compiling in WINDOWS,please uncomment this line. + //#define ALFONT_DOS //When compiling in DOS,please uncomment this line. +-//#define ALFONT_LINUX //When compiling in LINUX,please uncomment this line. ++#define ALFONT_LINUX //When compiling in LINUX,please uncomment this line. + + + #ifndef ALFONT_H +@@ -461,4 +461,4 @@ + + Platform specifics + RISCOS-LATIN1 +-*/ +\ No newline at end of file ++*/ +--- alfont-2.0.6/src/alfont.c~ 2006-11-30 16:12:55.000000000 +0100 ++++ alfont-2.0.6/src/alfont.c 2006-11-30 16:12:55.000000000 +0100 +@@ -450,7 +450,7 @@ + alfont_set_char_extra_spacing(font, 0); + + //Initial Font attribute +- font->language=""; /* Initial Language */ ++ font->language=strdup(""); /* Initial Language */ + font->type=0; /* Initial Code Convert */ + font->outline_top=0; /* Initial Font top outline width */ + font->outline_bottom=0; /* Initial Font bottom outline width */ +@@ -530,7 +530,7 @@ + alfont_set_char_extra_spacing(font, 0); + + //Initial Font attribute +- font->language=""; /* Initial Language */ ++ font->language=strdup(""); /* Initial Language */ + font->type=0; /* Initial Code Convert */ + font->outline_top=0; /* Initial Font top outline width */ + font->outline_bottom=0; /* Initial Font bottom outline width */ +@@ -871,7 +871,7 @@ + last_glyph_index = 0; + + #ifdef ALFONT_LINUX //Fix for Linux Unicode System(be converted) +- for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW),character = ugetxc(&(const char*)lpszW)) { ++ for (character = ugetxc((const char**)&lpszW); character != 0; character = ugetxc((const char**)&lpszW),character = ugetxc((const char**)&lpszW)) { + #else + for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW)) { + #endif +@@ -1957,7 +1957,7 @@ + last_glyph_index = 0; + + #ifdef ALFONT_LINUX //Fix for Linux Unicode System(be converted) +- for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW),character = ugetxc(&(const char*)lpszW)) { ++ for (character = ugetxc((const char**)&lpszW); character != 0; character = ugetxc((const char**)&lpszW),character = ugetxc((const char**)&lpszW)) { + #else + for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW)) { + #endif +@@ -2735,7 +2735,7 @@ + /* virtually draw char by char */ + last_glyph_index = 0; + #ifdef ALFONT_LINUX //Fix for Linux Unicode System(be converted) +- for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW),character = ugetxc(&(const char*)lpszW)) { ++ for (character = ugetxc((const char**)&lpszW); character != 0; character = ugetxc((const char**)&lpszW),character = ugetxc((const char**)&lpszW)) { + #else + for (character = ugetxc(&(const char*)lpszW); character != 0; character = ugetxc(&(const char*)lpszW)) { + #endif +@@ -3712,7 +3712,9 @@ + if (language == NULL) { + language = ""; + } +- f->language=(char *)malloc(strlen(language)*sizeof(char)); ++ if (f->language) ++ free(f->language); ++ f->language=(char *)malloc((strlen(language)+1)*sizeof(char)); + strcpy(f->language,language); + } + diff --git a/alfont-2.0.9-build-fixes.patch b/alfont-2.0.9-build-fixes.patch deleted file mode 100644 index 57fbf20..0000000 --- a/alfont-2.0.9-build-fixes.patch +++ /dev/null @@ -1,309 +0,0 @@ -diff -up alfont-2.0.9/src/alfont.c~ alfont-2.0.9/src/alfont.c ---- alfont-2.0.9/src/alfont.c~ 2024-06-15 13:56:38.455325588 +0200 -+++ alfont-2.0.9/src/alfont.c 2024-06-15 13:56:43.799293099 +0200 -@@ -515,7 +515,7 @@ ALFONT_FONT *alfont_load_font_from_mem(c - memcpy((void *)font->data, (void *)data, data_len); - - /* load the font */ -- error = FT_New_Memory_Face(ft_library, font->data, font->data_size, 0, &font->face); -+ error = FT_New_Memory_Face(ft_library, (const FT_Byte *)font->data, font->data_size, 0, &font->face); - - if (error) { - free(font->data); -@@ -609,7 +609,7 @@ void alfont_textout_aa_ex(BITMAP *bmp, A - char *lpszW; - char *lpszW_tmp; - int x_tmp; -- int max_advancex; -+ int max_advancex=0; - char *lpszW_pointer=NULL; //used for freeing string - char *s_pointer=NULL; //used for original string fixed by autofix - char *s_pointer_temp=NULL; //temporary used for autofix string -@@ -618,11 +618,10 @@ void alfont_textout_aa_ex(BITMAP *bmp, A - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. - int character; - int alpha_table[256]; -- int last_glyph_index; - int first_x=0, final_x=0, final_y=0; -- int curr_uformat; -+ int curr_uformat=0; - int first_flag=TRUE; //First Char flag -- BITMAP *masked_bmp; //the masked bmp used by Font hollow -+ BITMAP *masked_bmp=NULL; //the masked bmp used by Font hollow - - #ifdef ALFONT_DOS - iconv_t c_pt; -@@ -889,7 +888,6 @@ void alfont_textout_aa_ex(BITMAP *bmp, A - - /* draw char by char (using allegro unicode funcs) */ - acquire_bitmap(bmp); -- last_glyph_index = 0; - - if (f->fixed_width == TRUE) - { -@@ -978,7 +976,6 @@ void alfont_textout_aa_ex(BITMAP *bmp, A - real_x += v.x >> 6; - real_y += v.y >> 6; - }*/ -- last_glyph_index = glyph_index; - - /* draw only if exists */ - if ((cglyph.aa_available) && (cglyph.aabmp)) { -@@ -1774,18 +1771,18 @@ void alfont_textout_ex(BITMAP *bmp, ALFO - char *lpszW; - char *lpszW_tmp; - int x_tmp; -- int max_advancex; -+ int max_advancex=0; - char *lpszW_pointer=NULL; //used for freeing string - char *s_pointer=NULL; //used for original string fixed by autofix - char *s_pointer_temp=NULL; //temporary used for autofix string - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. -- int character, last_glyph_index; -+ int character; - int first_x=0, final_x=0, final_y=0; -- int curr_uformat; -+ int curr_uformat=0; - int first_flag=TRUE; //First Char flag -- BITMAP *masked_bmp; //the masked bmp used by Font hollow -+ BITMAP *masked_bmp=NULL; //the masked bmp used by Font hollow - #ifdef ALFONT_DOS - iconv_t c_pt; - size_t fromlen, tolen; -@@ -2026,8 +2023,6 @@ void alfont_textout_ex(BITMAP *bmp, ALFO - - /* draw char by char (using allegro unicode funcs) */ - acquire_bitmap(bmp); -- last_glyph_index = 0; -- - - if (f->fixed_width == TRUE) - { -@@ -2115,7 +2110,6 @@ void alfont_textout_ex(BITMAP *bmp, ALFO - real_x += v.x >> 6; - real_y += v.y >> 6; - }*/ -- last_glyph_index = glyph_index; - - /* draw only if exists */ - if ((cglyph.mono_available) && (cglyph.bmp)) { -@@ -2628,14 +2622,14 @@ int alfont_text_height(ALFONT_FONT *f) { - int alfont_text_length(ALFONT_FONT *f, const char *str) { - char *lpszW; - char *lpszW_tmp; -- int max_advancex; -+ int max_advancex=0; - char *lpszW_pointer=NULL; //used for freeing string - char *str_pointer=NULL; //used for original string fixed by autofix - char *str_pointer_temp=NULL; //temporary used for autofix string - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. -- int curr_uformat; -+ int curr_uformat=0; - int total_length = 0, character, last_glyph_index; - int glyph_index; - int glyph_index_tmp; -@@ -2953,7 +2947,7 @@ int alfont_text_length(ALFONT_FONT *f, c - } - - int alfont_char_length(ALFONT_FONT *f, int character) { -- int curr_uformat; -+ int curr_uformat=0; - int total_length = 0, last_glyph_index; - int glyph_index; - -@@ -3034,7 +3028,7 @@ int alfont_text_count(ALFONT_FONT *f, co - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. -- int curr_uformat; -+ int curr_uformat=0; - int string_count=0; - #ifdef ALFONT_DOS - iconv_t c_pt; -@@ -3282,14 +3276,13 @@ int alfont_text_count(ALFONT_FONT *f, co - - int alfont_ugetc(ALFONT_FONT *f, const char *s) { - char *lpszW; -- char *lpszW_pointer=NULL; //used for freeing string - char *s_pointer=NULL; //used for original string fixed by autofix - char *s_pointer_temp=NULL; //temporary used for autofix string - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. - int character; -- int curr_uformat; -+ int curr_uformat=0; - #ifdef ALFONT_DOS - iconv_t c_pt; - size_t fromlen, tolen; -@@ -3526,20 +3519,16 @@ int alfont_ugetc(ALFONT_FONT *f, const c - - int alfont_ugetx(ALFONT_FONT *f, char **s) { - char *lpszW; -- char *lpszW_pointer=NULL; //used for freeing string - char *s_pointer=NULL; //used for original string fixed by autofix - char *s_pointer_temp=NULL; //temporary used for autofix string - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. - int character; -- int curr_uformat; -+ int curr_uformat=0; - -- char *lpszWS; -+ const char *lpszWS; - char *lpszWA; -- int sLen; //length before advances the *s pointer to the next character -- int aLen; //length after advances the *s pointer to the next character -- int lIndex; - - #ifdef ALFONT_DOS - iconv_t c_pt; -@@ -3551,8 +3540,6 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - return 0; - } - -- sLen = strlen(*s); -- - nLen = strlen(*s) + 1; - s_pointer = (char *)malloc(nLen*sizeof(char)); - memset(s_pointer, 0, nLen); -@@ -3761,9 +3748,9 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - //advances the *s pointer to the next character - - if (f->type==1) { -- ugetxc((char**)s); -+ ugetxc((const char**)s); - #ifdef ALFONT_LINUX -- ugetxc((char**)s); -+ ugetxc((const char**)s); - #endif - } - else if(f->type==2) { -@@ -3772,10 +3759,7 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - ugetxc(&lpszWS); - #endif - #ifdef ALFONT_DOS -- if ((c_pt = iconv_open(f->language, "UTF-16LE")) == (iconv_t)-1) { -- aLen = strlen(lpszWS); -- } -- else { -+ if ((c_pt = iconv_open(f->language, "UTF-16LE")) != (iconv_t)-1) { - iconv(c_pt, NULL, NULL, NULL, NULL); - fromlen = strlen(lpszWS) + 1; - tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -@@ -3790,7 +3774,6 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - free(lpszWA); - lpszWA = lpszWS - } -- aLen = strlen(lpszWA); - } - #else - setlocale(LC_CTYPE,f->language); -@@ -3798,14 +3781,8 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - lpszWA = (char *)malloc(nLen*sizeof(char)); - memset(lpszWA, 0, nLen); - wcstombs(lpszWA, (const wchar_t *)lpszWS, nLen); -- aLen = strlen(lpszWA); - #endif - -- for (lIndex = 0; lIndex < sLen - aLen; lIndex++) -- { -- (*(*s)++); -- } -- - if (lpszWA) { - free(lpszWA); - } -@@ -3814,9 +3791,9 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - #ifdef ALFONT_LINUX - set_uformat(U_UTF8); - #endif -- ugetxc((char**)s); -+ ugetxc((const char**)s); - #ifdef ALFONT_LINUX -- ugetxc((char**)s); -+ ugetxc((const char**)s); - #endif - } - -@@ -3842,20 +3819,16 @@ int alfont_ugetx(ALFONT_FONT *f, char ** - - int alfont_ugetxc(ALFONT_FONT *f, const char **s) { - char *lpszW; -- char *lpszW_pointer=NULL; //used for freeing string - char *s_pointer=NULL; //used for original string fixed by autofix - char *s_pointer_temp=NULL; //temporary used for autofix string - char *precedingchar_pointer=NULL; //used for precedingchar character - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. - int character; -- int curr_uformat; -+ int curr_uformat=0; - -- char *lpszWS; -+ const char *lpszWS; - char *lpszWA; -- int sLen; //length before advances the *s pointer to the next character -- int aLen; //length after advances the *s pointer to the next character -- int lIndex; - - #ifdef ALFONT_DOS - iconv_t c_pt; -@@ -3867,8 +3840,6 @@ int alfont_ugetxc(ALFONT_FONT *f, const - return 0; - } - -- sLen = strlen(*s); -- - nLen = strlen(*s) + 1; - s_pointer = (char *)malloc(nLen*sizeof(char)); - memset(s_pointer, 0, nLen); -@@ -4088,10 +4059,7 @@ int alfont_ugetxc(ALFONT_FONT *f, const - ugetxc(&lpszWS); - #endif - #ifdef ALFONT_DOS -- if ((c_pt = iconv_open(f->language, "UTF-16LE")) == (iconv_t)-1) { -- aLen = strlen(lpszWS); -- } -- else { -+ if ((c_pt = iconv_open(f->language, "UTF-16LE")) != (iconv_t)-1) { - iconv(c_pt, NULL, NULL, NULL, NULL); - fromlen = strlen(lpszWS) + 1; - tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -@@ -4106,7 +4074,6 @@ int alfont_ugetxc(ALFONT_FONT *f, const - free(lpszWA); - lpszWA = lpszWS - } -- aLen = strlen(lpszWA); - } - #else - setlocale(LC_CTYPE,f->language); -@@ -4114,14 +4081,8 @@ int alfont_ugetxc(ALFONT_FONT *f, const - lpszWA = (char *)malloc(nLen*sizeof(char)); - memset(lpszWA, 0, nLen); - wcstombs(lpszWA, (const wchar_t *)lpszWS, nLen); -- aLen = strlen(lpszWA); - #endif - -- for (lIndex = 0; lIndex < sLen - aLen; lIndex++) -- { -- (*(*s)++); -- } -- - if (lpszWA) { - free(lpszWA); - } -@@ -4164,7 +4125,7 @@ int alfont_need_uconvert(ALFONT_FONT *f, - int need_unicode_convert=TRUE; - int nLen; - int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. -- int curr_uformat; -+ int curr_uformat=0; - #ifdef ALFONT_DOS - iconv_t c_pt; - size_t fromlen, tolen; diff --git a/alfont-2.0.9-linux.patch b/alfont-2.0.9-linux.patch deleted file mode 100644 index 9b3da99..0000000 --- a/alfont-2.0.9-linux.patch +++ /dev/null @@ -1,58 +0,0 @@ -diff -up alfont-2.0.9/include/alfont.h.linux alfont-2.0.9/include/alfont.h ---- alfont-2.0.9/include/alfont.h.linux 2009-02-01 23:52:34.000000000 +0100 -+++ alfont-2.0.9/include/alfont.h 2012-07-04 17:54:36.934125374 +0200 -@@ -10,9 +10,9 @@ - /* See FTL.txt (FreeType Project License) for license */ - - --#define ALFONT_WINDOWS //When compiling in WINDOWS,please uncomment this line. -+//#define ALFONT_WINDOWS //When compiling in WINDOWS,please uncomment this line. - //#define ALFONT_DOS //When compiling in DOS,please uncomment this line. --//#define ALFONT_LINUX //When compiling in LINUX,please uncomment this line. -+#define ALFONT_LINUX //When compiling in LINUX,please uncomment this line. - - - #ifndef ALFONT_H -@@ -468,4 +468,4 @@ TDS565 - - Platform specifics - RISCOS-LATIN1 --*/ -\ No newline at end of file -+*/ -diff -up alfont-2.0.9/src/alfont.c.linux alfont-2.0.9/src/alfont.c ---- alfont-2.0.9/src/alfont.c.linux 2009-02-04 22:40:24.000000000 +0100 -+++ alfont-2.0.9/src/alfont.c 2012-07-05 12:09:47.299021581 +0200 -@@ -468,7 +468,7 @@ ALFONT_FONT *alfont_load_font(const char - alfont_set_char_extra_spacing(font, 0); - - //Initial Font attribute -- font->language=""; /* Initial Language */ -+ font->language=NULL; /* Initial Language */ - font->type=0; /* Initial Code Convert */ - font->outline_top=0; /* Initial Font top outline width */ - font->outline_bottom=0; /* Initial Font bottom outline width */ -@@ -548,7 +548,7 @@ ALFONT_FONT *alfont_load_font_from_mem(c - alfont_set_char_extra_spacing(font, 0); - - //Initial Font attribute -- font->language=""; /* Initial Language */ -+ font->language=NULL; /* Initial Language */ - font->type=0; /* Initial Code Convert */ - font->outline_top=0; /* Initial Font top outline width */ - font->outline_bottom=0; /* Initial Font bottom outline width */ -@@ -4823,12 +4823,13 @@ void alfont_set_char_extra_spacing(ALFON - - - void alfont_set_language(ALFONT_FONT *f, const char *language) { -+ free(f->language); - if (language == NULL) { - f->language = NULL; - } - else - { -- f->language=(char *)malloc(strlen(language)*sizeof(char)); -+ f->language=(char *)malloc((strlen(language)+1)*sizeof(char)); - strcpy(f->language,language); - } - } diff --git a/alfont-2.0.9-remove-alfont_get_string.patch b/alfont-2.0.9-remove-alfont_get_string.patch deleted file mode 100644 index f4b76e4..0000000 --- a/alfont-2.0.9-remove-alfont_get_string.patch +++ /dev/null @@ -1,284 +0,0 @@ -Remove alfont_get_string - -alfont_get_string has a weird, weird API where its destination is char **out, -yet it does not return an allocated buffer in out, instead it uses _msize -on it to check if the passed in buffer is big enough ?? Which means the -parameter could have been a char * just as well ?? - -Anyways we don't have _msize on Linux, and no alfont using apps actually use -alfont_get_string(), so this patch just removes it completely, fixing the -_msize problem. - -Signed-off-by: Hans de Goede -diff -up alfont-2.0.9/include/alfont.h~ alfont-2.0.9/include/alfont.h ---- alfont-2.0.9/include/alfont.h~ 2012-07-29 11:51:08.000000000 +0200 -+++ alfont-2.0.9/include/alfont.h 2012-07-29 11:58:53.194121909 +0200 -@@ -103,8 +103,6 @@ ALFONT_DLL_DECLSPEC int alfont_ugetc(ALF - ALFONT_DLL_DECLSPEC int alfont_ugetx(ALFONT_FONT *f, char **s); //Returns the character pointered by `s' in the current encoding format, and advances the pointer to the next character after the one just returned - ALFONT_DLL_DECLSPEC int alfont_ugetxc(ALFONT_FONT *f, const char **s); //Returns the character pointered by `s' in the current encoding format, and advances the pointer to the next character after the one just returned - --ALFONT_DLL_DECLSPEC void alfont_get_string(ALFONT_FONT *f, const char *s , char **out); //Gets the converted string pointered by `s' in the current encoding format -- - ALFONT_DLL_DECLSPEC void alfont_set_font_outline_top(ALFONT_FONT *f, int w); //Sets Font top outline width - ALFONT_DLL_DECLSPEC int alfont_get_font_outline_top(ALFONT_FONT *f); //Returns Font top outline width - ALFONT_DLL_DECLSPEC void alfont_set_font_outline_bottom(ALFONT_FONT *f, int w); //Sets Font bottom outline width -diff -up alfont-2.0.9/src/alfont.c~ alfont-2.0.9/src/alfont.c ---- alfont-2.0.9/src/alfont.c~ 2012-07-29 11:51:08.000000000 +0200 -+++ alfont-2.0.9/src/alfont.c 2012-07-29 11:58:44.277233388 +0200 -@@ -4156,256 +4156,6 @@ int alfont_ugetxc(ALFONT_FONT *f, const - return character; - } - --void alfont_get_string(ALFONT_FONT *f, const char *s , char **out){ -- char *lpszW; -- char *lpszW_pointer=NULL; //used for freeing string -- char *s_pointer=NULL; //used for original string fixed by autofix -- char *s_pointer_temp=NULL; //temporary used for autofix string -- char *precedingchar_pointer=NULL; //used for precedingchar character -- int nLen; -- int ret; //decide that if the ASCII Code convert to Unicode Code is all OK when used for autofix string or used for general convert. -- int curr_uformat; -- -- #ifdef ALFONT_DOS -- iconv_t c_pt; -- size_t fromlen, tolen; -- char *sin, *sout; -- #endif -- -- if (s == NULL) { -- return; -- } -- -- nLen = strlen(s) + 1; -- s_pointer = (char *)malloc(nLen*sizeof(char)); -- memset(s_pointer, 0, nLen); -- strcpy(s_pointer, s); -- -- //Auto Fix for cutted string -- //For ASCII convert to unicode -- //Add the previous character to the s string -- //If find the cutted character, store it from the converted s string and remove it from the original s string -- if (f->autofix==TRUE) { -- if (f->type==2) { -- curr_uformat=get_uformat(); -- -- #ifdef ALFONT_DOS -- if ((c_pt = iconv_open("UTF-16LE", f->language)) != (iconv_t)-1) { -- -- fromlen = strlen(s) + 1; -- tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -- -- //add the previous character to the s string -- if (f->precedingchar != 0) { -- free(s_pointer); -- fromlen = strlen(s) + 1 + 1; -- tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -- s_pointer = (char *)malloc(tolen*sizeof(char)); -- memset(s_pointer, 0, tolen); -- precedingchar_pointer=(char *)malloc(2*sizeof(char)); -- memset(precedingchar_pointer, 0, 2); -- sprintf(precedingchar_pointer, "%c", f->precedingchar); -- strcpy(s_pointer,precedingchar_pointer); -- if (precedingchar_pointer) { -- free(precedingchar_pointer); -- precedingchar_pointer = NULL; -- } -- strcat(s_pointer, s); -- f->precedingchar = 0; -- } -- -- iconv(c_pt, NULL, NULL, NULL, NULL); -- lpszW = (char *)malloc(tolen*sizeof(char)); -- memset(lpszW, 0, tolen); -- sin = s; -- sout = lpszW; -- ret = iconv(c_pt, &sin, &fromlen, &sout, &tolen); -- iconv_close(c_pt); -- -- s_pointer_temp = s_pointer; -- -- if (ret == -1) { //If the ret is -1, the final one will can be a shortcutted character. -- //store the last character to precedingchar character -- //get the final character -- set_uformat(curr_uformat); -- while (*s_pointer_temp != '\0') { -- f->precedingchar = *s_pointer_temp; -- s_pointer_temp++; -- } -- //remove the final character -- s_pointer_temp--; -- *s_pointer_temp = '\0'; -- } -- if (lpszW) { -- free(lpszW); -- lpszW = NULL; -- } -- } -- #else -- -- -- #ifdef ALFONT_LINUX -- nLen = strlen(s_pointer) * 5 + 1; -- #else -- nLen = strlen(s_pointer) + 1; -- #endif -- -- //add the previous character to the s string -- if (f->precedingchar != 0) { -- free(s_pointer); -- nLen = strlen(s) + 1 + 1; -- s_pointer = (char *)malloc(nLen*sizeof(char)); -- memset(s_pointer, 0, nLen); -- precedingchar_pointer=(char *)malloc(2*sizeof(char)); -- memset(precedingchar_pointer, 0, 2); -- sprintf(precedingchar_pointer, "%c", f->precedingchar); -- strcpy(s_pointer,precedingchar_pointer); -- if (precedingchar_pointer) { -- free(precedingchar_pointer); -- precedingchar_pointer = NULL; -- } -- strcat(s_pointer, s); -- f->precedingchar = 0; -- } -- -- setlocale(LC_CTYPE,f->language); -- set_uformat(U_UNICODE); -- -- lpszW = (char *)malloc(nLen*sizeof(wchar_t)); -- memset(lpszW, 0, nLen); -- ret = mbstowcs((wchar_t *)lpszW, s_pointer, nLen); -- -- s_pointer_temp = s_pointer; -- -- if (ret == -1) { //If the ret is -1, the final one will can be a shortcutted character. -- //store the last character to precedingchar character -- //get the final character -- set_uformat(curr_uformat); -- while (*s_pointer_temp != '\0') { -- f->precedingchar = *s_pointer_temp; -- s_pointer_temp++; -- } -- //remove the final character -- s_pointer_temp--; -- *s_pointer_temp = '\0'; -- } -- if (lpszW) { -- free(lpszW); -- lpszW = NULL; -- } -- #endif -- //recover to original codepage -- set_uformat(curr_uformat); -- } -- } -- -- -- //Font Code Convert -- -- -- if (f->type==1) { -- -- #ifdef ALFONT_DOS -- if ((c_pt = iconv_open(f->language, "UTF-16LE")) == (iconv_t)-1) { -- lpszW = (char *)s_pointer; -- } -- else { -- iconv(c_pt, NULL, NULL, NULL, NULL); -- fromlen = strlen(s_pointer) + 1; -- tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -- lpszW = (char *)malloc(tolen*sizeof(char)); -- memset(lpszW, 0, tolen); -- sin = s_pointer; -- sout = lpszW; -- ret = iconv(c_pt, &sin, &fromlen, &sout, &tolen); -- iconv_close(c_pt); -- if (ret == -1) { -- lpszW = (char *)s_pointer; -- } -- } -- #else -- setlocale(LC_CTYPE,f->language); -- nLen= MB_CUR_MAX * wcslen((const wchar_t*)s_pointer) + 1; -- lpszW = (char *)malloc(nLen*sizeof(char)); -- memset(lpszW, 0, nLen); -- wcstombs(lpszW, (const wchar_t *)s_pointer, nLen); -- #endif -- } -- else if(f->type==2) { -- curr_uformat=get_uformat(); -- -- #ifdef ALFONT_DOS -- if ((c_pt = iconv_open("UTF-16LE", f->language)) == (iconv_t)-1) { -- lpszW = (char *)s_pointer; -- } -- else { -- iconv(c_pt, NULL, NULL, NULL, NULL); -- fromlen = strlen(s_pointer) + 1; -- tolen = MB_CUR_MAX * fromlen * (sizeof(wchar_t) + 1); -- lpszW = (char *)malloc(tolen*sizeof(char)); -- memset(lpszW, 0, tolen); -- sin = s_pointer; -- sout = lpszW; -- ret = iconv(c_pt, &sin, &fromlen, &sout, &tolen); -- iconv_close(c_pt); -- if (ret == -1) { -- lpszW = (char *)s_pointer; -- } -- else { -- set_uformat(U_UNICODE); -- } -- } -- #else -- setlocale(LC_CTYPE,f->language); -- set_uformat(U_UNICODE); -- -- #ifdef ALFONT_LINUX -- nLen = strlen(s_pointer) * 5 + 1; -- #else -- nLen= strlen(s_pointer) + 1; -- #endif -- -- lpszW = (char *)malloc(nLen*sizeof(wchar_t)); -- memset(lpszW, 0, nLen); -- mbstowcs((wchar_t *)lpszW, s_pointer, nLen); -- #endif -- } -- else { -- #ifdef ALFONT_LINUX -- set_uformat(U_UTF8); -- nLen= ustrlen(s_pointer) + 1; -- #endif -- lpszW = (char *)s_pointer; -- } -- -- memset(*out, 0, _msize(*out)); -- if (_msize(*out) > 0 && _msize(lpszW) >= _msize(*out)) -- { -- memcpy(*out, lpszW, _msize(*out)); -- } -- else if (_msize(*out) > 0 && _msize(*out) > _msize(lpszW)) -- { -- memcpy(*out, lpszW, _msize(lpszW)); -- } -- -- if ((f->type==1)||(f->type==2)) { -- if (lpszW) -- free(lpszW); -- } -- -- if(s_pointer) { -- free(s_pointer); -- } -- -- #ifndef ALFONT_DOS -- setlocale(LC_CTYPE,""); -- #endif -- -- if (f->type==2) { -- set_uformat(curr_uformat); -- } --} -- - int alfont_need_uconvert(ALFONT_FONT *f, const char *str) { - char *lpszW; - char *str_pointer=NULL; //used for original string fixed by autofix diff --git a/alfont.rpmlintrc b/alfont.rpmlintrc deleted file mode 100644 index fc50c84..0000000 --- a/alfont.rpmlintrc +++ /dev/null @@ -1,4 +0,0 @@ -# -devel has no docs -addFilter("no-documentation") -# Source0 is not an URL -addFilter("invalid-url") diff --git a/alfont.spec b/alfont.spec index 6256dca..f76bd8f 100644 --- a/alfont.spec +++ b/alfont.spec @@ -1,15 +1,14 @@ Name: alfont -Version: 2.0.9 -Release: 32%{?dist} +Version: 2.0.6 +Release: 6%{?dist} Summary: Font rendering library for the Allegro game library +Group: System Environment/Libraries License: FTL URL: http://chernsha.sitesled.com/ -# this is http://chernsha.sitesled.com/AlFont209.rar repackaged in .tgz format +# this is http://chernsha.sitesled.com/AlFont206.rar repackaged in .tgz format Source0: %{name}-%{version}.tar.gz -Patch0: alfont-2.0.9-linux.patch -Patch1: alfont-2.0.9-remove-alfont_get_string.patch -Patch2: alfont-2.0.9-build-fixes.patch -BuildRequires: gcc +Patch0: alfont-2.0.6-linux.patch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: allegro-devel freetype-devel %description @@ -20,6 +19,7 @@ text using freetype fonts on Allegro bitmaps. %package devel Summary: Development files for %{name} +Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: allegro-devel @@ -29,13 +29,9 @@ developing applications that use %{name}. %prep -%autosetup -p1 -for i in include/alfont*.h freetype/docs/FTL.TXT; do - sed -i.orig s'/\r//g' $i - iconv -f ISO-8859-1 -t UTF-8 $i > $i.utf8 - mv $i.utf8 $i - touch -r $i.orig $i -done +%setup -q +%patch0 -p1 -z .linux +sed -i s'/\r//g' freetype/docs/FTL.TXT %build @@ -45,11 +41,12 @@ done gcc -fPIC -DPIC $RPM_OPT_FLAGS -Iinclude `freetype-config --cflags` \ -o src/alfont.o -c src/alfont.c gcc -shared -Wl,-soname,lib%{name}.so.2 -o lib%{name}.so.%{version} \ - $RPM_OPT_FLAGS $RPM_LD_FLAGS \ - src/alfont.o $(freetype-config --libs) $(allegro-config --libs) + src/alfont.o `freetype-config --libs` \ + `allegro-config --libs | sed 's/-lalleg_unsharable//'` %install +rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_libdir} mkdir -p $RPM_BUILD_ROOT%{_includedir} install -m 755 lib%{name}.so.%{version} $RPM_BUILD_ROOT%{_libdir} @@ -58,127 +55,27 @@ ln -s lib%{name}.so.%{version} $RPM_BUILD_ROOT%{_libdir}/lib%{name}.so install -m 644 include/%{name}*.h $RPM_BUILD_ROOT%{_includedir} -%ldconfig_scriptlets +%clean +rm -rf $RPM_BUILD_ROOT + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig %files -%doc CHANGES.txt README.txt -%license freetype/docs/FTL.TXT +%defattr(-,root,root,-) +%doc CHANGES.txt README.txt freetype/docs/FTL.TXT %{_libdir}/lib%{name}.so.* %files devel +%defattr(-,root,root,-) %{_includedir}/%{name}*.h %{_libdir}/lib%{name}.so %changelog -* Fri Jan 16 2026 Fedora Release Engineering - 2.0.9-32 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Wed Jul 23 2025 Fedora Release Engineering - 2.0.9-31 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Jan 16 2025 Fedora Release Engineering - 2.0.9-30 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jul 17 2024 Fedora Release Engineering - 2.0.9-29 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - -* Sat Jun 15 2024 Hans de Goede - 2.0.9-28 -- Fix FTBFS (rhbz#2260975) -- Use distro LD_FLAGS when linking - -* Mon Jan 22 2024 Fedora Release Engineering - 2.0.9-27 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Fri Jan 19 2024 Fedora Release Engineering - 2.0.9-26 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Wed Jul 19 2023 Fedora Release Engineering - 2.0.9-25 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Wed Jan 18 2023 Fedora Release Engineering - 2.0.9-24 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Jul 20 2022 Fedora Release Engineering - 2.0.9-23 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Wed Jan 19 2022 Fedora Release Engineering - 2.0.9-22 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Wed Jul 21 2021 Fedora Release Engineering - 2.0.9-21 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Mon Jan 25 2021 Fedora Release Engineering - 2.0.9-20 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Jul 31 2020 Fedora Release Engineering - 2.0.9-19 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon Jul 27 2020 Fedora Release Engineering - 2.0.9-18 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Tue Jan 28 2020 Fedora Release Engineering - 2.0.9-17 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Jul 24 2019 Fedora Release Engineering - 2.0.9-16 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild - -* Thu Jan 31 2019 Fedora Release Engineering - 2.0.9-15 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild - -* Thu Jul 12 2018 Fedora Release Engineering - 2.0.9-14 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild - -* Wed Feb 07 2018 Fedora Release Engineering - 2.0.9-13 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild - -* Wed Aug 02 2017 Fedora Release Engineering - 2.0.9-12 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild - -* Wed Jul 26 2017 Fedora Release Engineering - 2.0.9-11 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild - -* Fri Feb 10 2017 Fedora Release Engineering - 2.0.9-10 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 03 2016 Fedora Release Engineering - 2.0.9-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Tue Jun 16 2015 Fedora Release Engineering - 2.0.9-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Fri Aug 15 2014 Fedora Release Engineering - 2.0.9-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Sat Jun 07 2014 Fedora Release Engineering - 2.0.9-6 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Sat Aug 03 2013 Fedora Release Engineering - 2.0.9-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Wed Feb 13 2013 Fedora Release Engineering - 2.0.9-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Sun Jul 29 2012 Hans de Goede - 2.0.9-3 -- Fix undefined reference to _msize - -* Wed Jul 18 2012 Fedora Release Engineering - 2.0.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Thu Jul 5 2012 Hans de Goede - 2.0.9-1 -- New upstream release 2.0.9 - -* Thu Jan 12 2012 Fedora Release Engineering - 2.0.6-9 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Fri Jul 15 2011 Hans de Goede - 2.0.6-8 -- Rebuild for new allegro-4.4 - -* Mon Feb 07 2011 Fedora Release Engineering - 2.0.6-7 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - * Fri Jul 24 2009 Fedora Release Engineering - 2.0.6-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild diff --git a/sources b/sources index de6b0e3..1546682 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -71112b3089f941a7cfd9e2eeae2f99df alfont-2.0.9.tar.gz +12ffff67b0089c70037ad3d3f6306b9f alfont-2.0.6.tar.gz