- g_free (window_title->title);
-
- if (document == NULL) {
- window_title->title = NULL;
- return;
- }
-
- page_cache = ev_page_cache_get (document);
- g_return_if_fail (page_cache != NULL);
-
- title = ev_page_cache_get_title (page_cache);
-
- /* Make sure we get a valid title back */
- if (title && title[0] != '\000' && g_utf8_validate (title, -1, NULL)) {
- window_title->title = g_strdup (title);
- }
-
- /* Some docs report titles with confusing extensions (ex. .doc for pdf).
- Let's show the filename in this case */
- for (i = 0; i < G_N_ELEMENTS (bad_extensions); i++) {
- if (bad_extensions[i].backend == ev_document_factory_get_backend (document) &&
- g_str_has_suffix (window_title->title, bad_extensions[i].ext)) {
- char *new_title;
- char *filename = get_filename_from_uri (uri);
-
- new_title = g_strdup_printf ("%s (%s)", window_title->title, filename);
- g_free (window_title->title);
- window_title->title = new_title;
-
- g_free (filename);
- }
- }
-
- if (window_title->title) {
- char *p;
-
- for (p = window_title->title; *p; ++p) {
- /* an '\n' byte is always ASCII, no need for UTF-8 special casing */
- if (*p == '\n')
- *p = ' ';
- }
- }
-
- if (window_title->title == NULL && uri) {
- window_title->title = get_filename_from_uri (uri);
- }