Compare commits

..

3 commits

Author SHA1 Message Date
Fedora Release Engineering
a0e86d43fb dist-git conversion 2010-07-28 09:42:03 +00:00
Bill Nottingham
85f4e29db5 Fix typo that causes a failure to update the common directory. (releng
#2781)
2009-11-26 01:26:09 +00:00
Jesse Keating
1b1a24d1c7 Initialize branch F-12 for alfont 2009-09-29 08:16:11 +00:00
8 changed files with 103 additions and 783 deletions

1
.gitignore vendored
View file

@ -1,2 +1 @@
alfont-2.0.6.tar.gz
/alfont-2.0.9.tar.gz

79
alfont-2.0.6-linux.patch Normal file
View file

@ -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);
}

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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 <hdegoede@redhat.com>
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

View file

@ -1,4 +0,0 @@
# -devel has no docs
addFilter("no-documentation")
# Source0 is not an URL
addFilter("invalid-url")

View file

@ -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 <releng@fedoraproject.org> - 2.0.9-32
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Wed Jul 23 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-31
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Thu Jan 16 2025 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-30
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Jul 17 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-29
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jun 15 2024 Hans de Goede <hdegoede@redhat.com> - 2.0.9-28
- Fix FTBFS (rhbz#2260975)
- Use distro LD_FLAGS when linking
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-25
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-23
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-20
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jul 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-19
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-18
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-14
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-12
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.9-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Aug 15 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Sun Jul 29 2012 Hans de Goede <hdegoede@redhat.com> - 2.0.9-3
- Fix undefined reference to _msize
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Thu Jul 5 2012 Hans de Goede <hdegoede@redhat.com> - 2.0.9-1
- New upstream release 2.0.9
* Thu Jan 12 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.6-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Fri Jul 15 2011 Hans de Goede <hdegoede@redhat.com> - 2.0.6-8
- Rebuild for new allegro-4.4
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.6-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Fri Jul 24 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.6-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild

View file

@ -1 +1 @@
71112b3089f941a7cfd9e2eeae2f99df alfont-2.0.9.tar.gz
12ffff67b0089c70037ad3d3f6306b9f alfont-2.0.6.tar.gz