Clone in a terminal:
Commit dccc752
Johan Mattsson - 2014-07-07T05:29:54+00:00
dccc752155bd7217ba7047188585205a79e629bfjohan.mattsson.m@gmail.com

XML escape sequence for font name in bf files

Changed files (6)

Diff

diff --git a/libbirdfont/BirdFontFile.vala b/libbirdfont/BirdFontFile.valaindex c85dd5a..6585bf7 100644--- a/libbirdfont/BirdFontFile.vala+++ b/libbirdfont/BirdFontFile.vala@@ -78,7 +78,6 @@ class BirdFontFile : GLib.Object { 		bool ok = true; 		Xml.Node* root; 		-		TabBar.start_wheel (); 		tr.read (); 		root = tr.expand (); @@ -90,7 +89,6 @@ class BirdFontFile : GLib.Object { 		} 		 		tr.close ();-		TabBar.stop_wheel (); 		 		return ok; 	}@@ -251,8 +249,6 @@ class BirdFontFile : GLib.Object { 					os.put_string ("hadjustment=\""); 					os.put_string (round (k)); 					os.put_string ("\" />\n");-					-					Tool.yield (); 				} catch (GLib.Error e) { 					warning (@"$(e.message) \n"); 				}@@ -274,16 +270,16 @@ class BirdFontFile : GLib.Object { 	}  	public void write_description (DataOutputStream os) throws GLib.Error {-		os.put_string (@"<postscript_name>$(font.postscript_name)</postscript_name>\n");-		os.put_string (@"<name>$(font.name)</name>\n");-		os.put_string (@"<subfamily>$(font.subfamily)</subfamily>\n");+		os.put_string (@"<postscript_name>$(Markup.escape_text (font.postscript_name))</postscript_name>\n");+		os.put_string (@"<name>$(Markup.escape_text (font.name))</name>\n");+		os.put_string (@"<subfamily>$(Markup.escape_text (font.subfamily))</subfamily>\n"); 		os.put_string (@"<bold>$(font.bold)</bold>\n"); 		os.put_string (@"<italic>$(font.italic)</italic>\n");			-		os.put_string (@"<full_name>$(font.full_name)</full_name>\n");-		os.put_string (@"<unique_identifier>$(font.unique_identifier)</unique_identifier>\n");-		os.put_string (@"<version>$(font.version)</version>\n");-		os.put_string (@"<description>$(font.description)</description>\n");-		os.put_string (@"<copyright>$(font.copyright)</copyright>\n");+		os.put_string (@"<full_name>$(Markup.escape_text (font.full_name))</full_name>\n");+		os.put_string (@"<unique_identifier>$(Markup.escape_text (font.unique_identifier))</unique_identifier>\n");+		os.put_string (@"<version>$(Markup.escape_text (font.version))</version>\n");+		os.put_string (@"<description>$(Markup.escape_text (font.description))</description>\n");+		os.put_string (@"<copyright>$(Markup.escape_text (font.copyright))</copyright>\n"); 	}  	public void write_lines (DataOutputStream os) throws GLib.Error {diff --git a/libbirdfont/FileTab.vala b/libbirdfont/FileTab.valaindex 267f017..2879e4e 100644--- a/libbirdfont/FileTab.vala+++ b/libbirdfont/FileTab.vala@@ -41,9 +41,9 @@ public class FileTab : FontDisplay { 		 		font = BirdFont.get_current_font (); 		+		// FIXME: clean up this nested lamda function 		dialog.signal_discard.connect (() => { 			Font f;-			bool loaded;  			if (MenuTab.suppress_event) { 				return;@@ -55,22 +55,21 @@ public class FileTab : FontDisplay { 			MainWindow.clear_glyph_cache (); 			MainWindow.close_all_tabs (); 			+			MenuTab.load_callback = new LoadCallback ();+			 			f.set_file (fn);-			loaded = f.load (); // FIXME: background thread+			MainWindow.native_window.load (); // background thread 			-			if (!unlikely (loaded)) {-				warning (@"Failed to load font $fn");-				return;-			}+			MenuTab.load_callback.file_loaded.connect (() => {+				MainWindow.get_drawing_tools ().remove_all_grid_buttons ();+				foreach (string v in f.grid_width) {+					MainWindow.get_drawing_tools ().parse_grid (v);+				} 				-			MainWindow.get_drawing_tools ().remove_all_grid_buttons ();-			foreach (string v in f.grid_width) {-				MainWindow.get_drawing_tools ().parse_grid (v);-			}-			-			MainWindow.get_drawing_tools ().background_scale.set_value (f.background_scale);-			KerningTools.update_kerning_classes ();-			MenuTab.select_overview ();+				MainWindow.get_drawing_tools ().background_scale.set_value (f.background_scale);+				KerningTools.update_kerning_classes ();+				MenuTab.select_overview ();+			}); 		});  		dialog.signal_save.connect (() => {diff --git a/libbirdfont/GlyphRange.vala b/libbirdfont/GlyphRange.valaindex df3d8fc..7d8a308 100644--- a/libbirdfont/GlyphRange.vala+++ b/libbirdfont/GlyphRange.vala@@ -123,10 +123,10 @@ public class GlyphRange { 	 * @param ranges unicode ranges 	 */ 	public void parse_ranges (string ranges) throws MarkupError {-		parse_range_string (ranges, true);+		parse_range_string (ranges); 	} 	-	private void parse_range_string (string ranges, bool sync) throws MarkupError {+	private void parse_range_string (string ranges) throws MarkupError { 		string[] r; 				 		if (ranges == " ") {@@ -159,10 +159,6 @@ public class GlyphRange { 			} else { 				throw new MarkupError.PARSE (@"$w is not a single letter or a unicode range."); 			}--			if (!sync) {-				Tool.yield ();-			} 		} 	} diff --git a/libbirdfont/MenuTab.vala b/libbirdfont/MenuTab.valaindex 79914b8..f5ece5c 100644--- a/libbirdfont/MenuTab.vala+++ b/libbirdfont/MenuTab.vala@@ -116,6 +116,7 @@ public class MenuTab : FontDisplay { 		} 	} 	+	// FIXME: background thread 	public static void save_as_bfp () { 		Font f; 		string? fn;diff --git a/libbirdfont/OpenFontFormat/load_font.c b/libbirdfont/OpenFontFormat/load_font.cindex 6bd5876..db91a11 100644--- a/libbirdfont/OpenFontFormat/load_font.c+++ b/libbirdfont/OpenFontFormat/load_font.c@@ -791,8 +791,6 @@ GString* get_bf_font (FT_Face face, char* file, int* err) {  		g_string_append (bf, glyph->str); 		g_string_free (glyph, 0);-		-		bird_font_tool_yield (); 	} 	 	kerning = (gchar*) bird_font_open_font_format_reader_parse_kerning (file); @@ -803,7 +801,6 @@ GString* get_bf_font (FT_Face face, char* file, int* err) { 	}  	g_string_append (bf, "</font>\n");-	bird_font_tool_yield (); 	 	return bf; }@@ -820,8 +817,6 @@ GString* load_freetype_font (char* file, int* err) { 	FT_Glyph glyph; 	FT_UInt glyph_index; -	bird_font_tab_bar_start_wheel ();- 	error = FT_Init_FreeType (&library); 	if (error != OK) { 		g_warning ("Freetype init error %d.\n", error);@@ -860,8 +855,6 @@ GString* load_freetype_font (char* file, int* err) { 	FT_Done_Face ( face ); 	FT_Done_FreeType( library ); 	-	bird_font_tab_bar_stop_wheel ();-	 	*err = OK; 	return bf; }diff --git a/libbirdfont/TabBar.vala b/libbirdfont/TabBar.valaindex 52ff4a0..613049b 100644--- a/libbirdfont/TabBar.vala+++ b/libbirdfont/TabBar.vala@@ -809,14 +809,12 @@ public class TabBar : GLib.Object { 	public static void start_wheel () { 		if (!is_null (MainWindow.get_tab_bar ())) { 			MainWindow.get_tab_bar ().set_progress (true);-			Tool.yield (); 		} 	}  	public static void stop_wheel () { 		if (!is_null (MainWindow.get_tab_bar ())) { 			MainWindow.get_tab_bar ().set_progress (false);-			Tool.yield (); 		} 	} }

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112