From 42f148ad6df836a2e6a83c447a7e50bb390608ae Mon Sep 17 00:00:00 2001 From: eugeni Date: Sun, 3 Dec 2006 17:59:13 +0000 Subject: Keep embedded fonts in ass_library_t and perform actual disk write in fontconfig initialization. This is required for some fontconfig-related improvements. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21474 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libass/ass.c | 80 ------------------------------------------------------------ 1 file changed, 80 deletions(-) (limited to 'libass/ass.c') diff --git a/libass/ass.c b/libass/ass.c index c1568f07..d2c9523c 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -1046,86 +1046,6 @@ int ass_read_styles(ass_track_t* track, char* fname, char* codepage) return 0; } -static char* validate_fname(char* name) -{ - char* fname; - char* p; - char* q; - unsigned code; - int sz = strlen(name); - - q = fname = malloc(sz + 1); - p = name; - while (*p) { - code = utf8_get_char(&p); - if (code == 0) - break; - if ( (code > 0x7F) || - (code == '\\') || - (code == '/') || - (code == ':') || - (code == '*') || - (code == '?') || - (code == '<') || - (code == '>') || - (code == '|') || - (code == 0)) - { - *q++ = '_'; - } else { - *q++ = code; - } - if (p - name > sz) - break; - } - *q = 0; - return fname; -} - -/** - * \brief Add a memory font. - * \param name attachment name - * \param data binary font data - * \param data_size data size -*/ -void ass_add_font(ass_library_t* library, const char* name, char* data, int data_size) -{ - char buf[1000]; - FILE* fp = 0; - int rc; - struct stat st; - char* fname; - const char* fonts_dir = library->fonts_dir; - - if (!fonts_dir) - return; - rc = stat(fonts_dir, &st); - if (rc) { - int res; -#ifndef __MINGW32__ - res = mkdir(fonts_dir, 0700); -#else - res = mkdir(fonts_dir); -#endif - if (res) { - mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_FailedToCreateDirectory, fonts_dir); - } - } else if (!S_ISDIR(st.st_mode)) { - mp_msg(MSGT_ASS, MSGL_WARN, MSGTR_LIBASS_NotADirectory, fonts_dir); - } - - fname = validate_fname((char*)name); - - snprintf(buf, 1000, "%s/%s", fonts_dir, fname); - free(fname); - - fp = fopen(buf, "wb"); - if (!fp) return; - - fwrite(data, data_size, 1, fp); - fclose(fp); -} - long long ass_step_sub(ass_track_t* track, long long now, int movement) { int i; -- cgit v1.2.3