diff options
author | Nickolay V. Shmyrev <nshmyrev@yandex.ru> | 2005-04-07 15:28:06 (GMT) |
---|---|---|
committer | Nickolay V. Shmyrev <nshmyrev@src.gnome.org> | 2005-04-07 15:28:06 (GMT) |
commit | c3e1500a4815225f08e1b20dd066559e8c92c280 (patch) | |
tree | 7474fe16fce807cda4845df116fec07c60b161e6 /dvi/font.cc | |
parent | 52f67b9ce7a9f2282b2c85139d1d10f8c4df5786 (diff) |
Recent files support.
2005-04-07 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
* cut-n-paste/recent-files/Makefile.am:
* data/evince-ui.xml, shell/Makefile.am:
* shell/ev-application.c, shell/ev-application.h:
* shell/ev-window.c: Recent files support.
* configure.ac: Added "ru" to ALL_LINGUAS.
* dvju: new backend to support DJVU files.
* dvi: new backend to support DVI.
* configure.ac, Makefile.am, shell/Makefile.am, ev-window.c:
* ev-application.c: Support for new backends.
* help, ev-window.c, main.c shell/Makefile.am:
Diffstat (limited to 'dvi/font.cc')
-rwxr-xr-x | dvi/font.cc | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/dvi/font.cc b/dvi/font.cc deleted file mode 100755 index 4494b52..0000000 --- a/dvi/font.cc +++ /dev/null @@ -1,173 +0,0 @@ -#include "font.hh" - -#include "painter.hh" -#include "dl-pkfont.hh" -#include "dl-vffont.hh" - -using DviLib::FileLoader; -using DviLib::AbstractFont; -using DviLib::VfChar; -using DviLib::PkChar; -using DviLib::PkFont; -using DviLib::VfFont; - -static char * -do_run_program (const char *program, - GList *args, - GError **err) -{ - char **argv = g_new (char *, g_list_length (args) + 2); - GList *l; - int i; - char *result; - - i = 0; - argv[i++] = g_strdup (program); - for (l = args; l; l = l->next) - argv[i++] = g_strdup ((char *)l->data); - argv[i++] = NULL; - - g_list_free (args); - - - /* run it */ - g_spawn_sync (NULL, /* working directory */ - argv, /* arguments */ - NULL, /* environment */ - G_SPAWN_SEARCH_PATH, /* flags */ - NULL, /* child setup */ - NULL, /* user data for child setup */ - &result, /* stdout */ - NULL, /* stderr */ - NULL, /* exit status */ - err /* GError */); - - g_strfreev (argv); - - return result; -} - - -static char * -run_program (const char *program, - GError **err, - const char *arg1, - ...) -{ - va_list arg_list; - GList *arguments = NULL; - char *s; - - va_start (arg_list, arg1); - - arguments = g_list_append (arguments, (gpointer)arg1); - - s = va_arg (arg_list, gchar*); - while (s) - { - arguments = g_list_append (arguments, s); - s = va_arg (arg_list, gchar*); - } - - va_end (arg_list); - - return do_run_program (program, arguments, err); -} - -static char * -run_kpsewhich (int dpi, - string format, - string name) -{ - char *dpistr = g_strdup_printf ("--dpi=%d", dpi); - char *formatstr = g_strdup_printf ("--format=%s", format.c_str()); - char *namestr = g_strdup (name.c_str()); - GError *err = NULL; - char *result; - - result = run_program ("kpsewhich", &err, dpistr, formatstr, namestr, NULL); - - if (!result) - { - cout << err->message << endl; - } - else - { - g_strstrip (result); - - if (*result == '\0') - { - /* Nothing useful returned */ - g_free (result); - result = NULL; - } - } - - cout << "kpsewhich " << dpistr << " " << formatstr << " " << namestr << " " << endl; - - g_free (dpistr); - g_free (formatstr); - g_free (namestr); - - return result; -} - -static void -run_mktexpk (int dpi, string name) -{ - char *dpistr = g_strdup_printf ("--bdpi=%d", dpi); - char *bdpistr = g_strdup_printf ("--dpi=%d", dpi); - char *namestr = g_strdup (name.c_str()); - char *result; - - cout << "mktexpk " << bdpistr << " " << dpistr << " " << " " << namestr << " " << endl; - - result = run_program ("mktexpk", NULL, bdpistr, dpistr, namestr, NULL); - if (result) - g_free (result); - - g_free (dpistr); - g_free (bdpistr); - g_free (namestr); -} - -AbstractFont * -FontFactory::create_font (std::string name, - int dpi, - int at_size) -{ - char *filename; - - cout << "at size: " << at_size << endl; - - /* Find VF */ - filename = run_kpsewhich (dpi, "vf", name); - - if (filename) - return new VfFont (*new FileLoader (filename), at_size); - - /* Try PK */ - - filename = run_kpsewhich (dpi, "pk", name); - - if (filename) - return new PkFont (*new FileLoader (filename), at_size); - - /* Generate PK */ - - run_mktexpk (dpi, name); - - cout << "birnan" << endl; - - /* Try PK again */ - filename = run_kpsewhich (dpi, "pk", name); - - if (filename) - return new PkFont (*new FileLoader (filename), at_size); - - cout << "no luck" << endl; - - throw (string ("bad font")); - - return NULL; -} |